首页 > 解决方案 > C程序中会不会出现静态初始化顺序惨败?

问题描述

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

标签: ccompiler-errorsstatic

解决方案


C 中的静态初始化没有 C++ 的相同问题。

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

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


推荐阅读