在VC++2008中,静态局部变量和静态局部对象的初始化有很大区别。静态局部变量在 main() 之前初始化,并跳过函数内的定义语句。静态局部对象在 main() 之前用 0 值初始化,它在函数内的定义语句只执行一次。构造函数启动,对象由适当的值初始化。所有这些都可以在 Debug 模式下看到。这个解决方案是否符合现有的 C++ 标准?
最佳答案
来自 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1905.pdf :
Every object of static storage duration shall be zero-initialized at program startup before any other initialization takes place. [ Note: in some cases, additional initialization is done later. —end note ]
关于c++ - 静态局部变量和静态局部对象初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3179669/