全局变量总是用零初始化吗?

Are global variables always initialized with zeroes?

我能相信这个吗:

Section 6.7.8p10 Initialization of C standard

它会一直设置为 0 吗?此规则是否有例外(可能是特定于编译器的)?

是的,如果编译器是 C 编译器,则所有未初始化的静态变量都将被初始化,就好像 { 0 } 一样。这意味着即使位模式不同,浮点数和指针也将被 { 0 } 初始化。

如果编译器有一个选项使其成为非 C 编译器,那么所有赌注都将取消。