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

时间:2010-07-05 13:05:44

标签: c++

在VC ++ 2008中,静态局部变量和静态局部对象的初始化存在严重差异。静态局部变量在main()之前初始化,并且跳过函数中的定义语句。静态本地对象在main()之前由0值初始化,并且函数中的定义语句只执行一次。启动构造函数并通过适当的值初始化对象。所有这些都可以在调试模式下看到。此解决方案是否符合现有的C ++标准?

1 个答案:

答案 0 :(得分:1)

来自http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1905.pdf

  

静态存储的每个对象   持续时间应为零初始化   程序启动之前的任何其他   初始化发生。 [注意:在   某些情况下,额外初始化   稍后完成。 - 后注]