C 程序中会发生静态初始化顺序失败吗?

sub*_*147 1 c static compiler-errors

当我搜索静态初始化顺序问题时,我看到很多 C++ 中的示例解释了这个问题。我想知道:C程序中会出现静态初始化顺序失败问题吗?

dbu*_*ush 5

C 中的静态初始化不存在与 C++ 相同的问题。

在 C 中,具有静态存储持续时间的对象只能通过常量表达式进行初始化,即可以在编译时计算的值,因此不会出现有关初始化顺序的问题。

相比之下,C++ 允许调用函数来初始化静态对象,并且调用这些函数的顺序没有明确定义。