【问题标题】:static local variable and static local object initialization静态局部变量和静态局部对象初始化
【发布时间】:2010-07-05 21:44:01
【问题描述】:

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

【问题讨论】:

  • 请发布关注的确切代码。

标签: c++


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-21
    • 2019-04-23
    • 2021-10-23
    • 1970-01-01
    • 1970-01-01
    • 2023-01-30
    • 2015-10-04
    • 1970-01-01
    相关资源
    最近更新 更多