首页 >后端开发 >C++ >C 静态类成员何时初始化?

C 静态类成员何时初始化?

Susan Sarandon
Susan Sarandon原创
2024-12-07 20:19:12919浏览

When Are C   Static Class Members Initialized?

C 中静态类成员初始化的时序

确定 C 中静态类成员何时初始化可能是一件复杂的事情。但是,有一些假设可以指导开发人员理解此类初始化的时间。

C 标准 (3.6.2) 提供了有关静态初始化的两个关键保证:

  1. 有序初始化: 在同一翻译单元(通常是 .cpp 文件)中定义的具有静态存储持续时间的对象按照它们的顺序进行初始化定义,而不是它们的声明。
  2. 使用前初始化:翻译单元中对象的静态初始化保证在使用该单元中的任何对象或函数之前完成。

虽然这些保证建立了一个总体框架,但值得注意的是即:

  • 单元内排序:单个翻译单元中定义的对象初始化的确切顺序取决于实现。
  • Inter -unit Ordering: 不同翻译单元中定义的对象的初始化顺序不是由标准。

但是,根据经验,如果没有静态初始化器依赖其他静态初始化器,那么访问静态成员不应引起任何有关初始化顺序的问题。

以上是C 静态类成员何时初始化?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn