附加启动注意事项

在 C++ 中,对象构造和析构可能涉及执行用户代码。 因此,了解进入 main 前发生的初始化和退出 main 后调用的析构函数很重要的。(有关构造函数和析构函数的详细信息,请参阅构造函数析构函数。)

进入 main 前将发生以下初始化:

  • 静态数据默认初始化为零。 没有显式初始值设定项的所有静态数据在执行任何其他代码(包括运行时初始化)前设置为零。 静态数据成员仍必须显式定义。

  • 翻译单元中的全局静态对象的初始化。 这可能在进入 main 前或初次使用全局静态对象的翻译单元中的任何函数或对象前发生。

Microsoft 专用

在 Microsoft C++ 中,全局静态对象在进入 main 前进行初始化。

结束 Microsoft 专用

相互依赖但位于不同翻译单元中的全局静态对象会导致错误行为。

请参见

参考

启动和终止 (C++)