静态初始化顺序失败
“静态初始化顺序失败”(SIOF)是指使用静态数据时可能发生的潜在问题C 程序中的成员。当多个源文件定义具有循环依赖关系的静态数据成员时,就会出现这种情况。
考虑以下示例:
// file1.cpp extern int y; int x = y + 1; // file2.cpp extern int x; int y = x + 1;
问题:
基于在给定的代码片段上,您能解释一下编译期间可能发生的以下步骤吗?链接?
答案:
根据C标准(3.6.2“非本地对象的初始化”),如下步骤发生:
以上是C 静态初始化顺序惨败的编译和链接期间会发生什么?的详细内容。更多信息请关注PHP中文网其他相关文章!