来自 Scott 的 Programming Language Pragmatics
对象生命周期通常对应于三种主要存储分配机制之一,用于管理对象的空间:
静态对象被赋予一个绝对地址,该地址在程序执行过程中被保留。
堆栈对象以后进先出的顺序分配和释放,通常与子程序调用和返回结合使用。
- 堆对象可以在任意时间分配和释放。它们需要更通用(也更昂贵)的存储管理算法。
例如,在 C 中,静态对象必须用常量表达式(可以在编译时计算的表达式)初始化。
我不确定其他语言是否是这种情况,甚至其他语言也有静态对象。
一般来说,必须初始化静态对象吗?初始化时,是否必须使用可以在编译时评估的表达式进行初始化?
通过初始化,我的意思是显式或隐式(即由语言实现自动完成),而不是取消初始化。所以改写我的问题:一般来说,静态对象可以不被程序或编译器初始化吗?
谢谢。