我不清楚静态全局变量的存储是否可以重用或释放,尤其是在调用其他对象的全局析构函数之后。
如果在一个文件中我有:
静态整数一个;//假设a的值会在程序中的某个时间发生变化
int getA() { 返回一个;}
在另一个文件中:
外部 int getA();
B类{
上市:
~B() { if (getA() ==..... }
};
静态 B b;
在 ~B() 中引用 getA() 是否总是安全的(考虑到全局析构函数的顺序可能在翻译单元之间未定义)或者“a”的存储是否可以在某个时候被运行时释放或重用?
我知道在全局变量的初始化过程中有两个阶段,静态和动态,在静态阶段,它们的内存被 0 填充,在动态阶段构造函数被调用。是否有类似的反向完成和卸载?
C++ 标准对此有什么说法吗?