c++ - 静态局部变量和静态局部对象初始化

标签 c++

在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/

相关文章:

c++ - 编译器不生成 move 构造函数

c++ - 如何获取 ATL DLL 中的 HWND(用于 SendMessage 或 PostMessage)

c++ - "invalid pure specifier"当我的意思是没有纯说明符时?

c++ - 为什么 'class'和 'main'中的相等表达式表现不同?

c++ - 在C++中的类中实现回调函数

c++ - 增量熵计算

c++ - 从文件中读取插入值到整数和字符 C++

c++ - 当编译时参数未知时创建 execv 参数数组

java - 将 RGB 转换为 HSB(又名 HSV)

c++如何从路径字符串中删除文件名