全局变量总是用零初始化吗?
Are global variables always initialized with zeroes?
我能相信这个吗:
Section 6.7.8p10 Initialization of C standard
它会一直设置为 0 吗?此规则是否有例外(可能是特定于编译器的)?
是的,如果编译器是 C 编译器,则所有未初始化的静态变量都将被初始化,就好像 { 0 }
一样。这意味着即使位模式不同,浮点数和指针也将被 { 0 }
初始化。
如果编译器有一个选项使其成为非 C 编译器,那么所有赌注都将取消。
我能相信这个吗:
Section 6.7.8p10 Initialization of C standard
它会一直设置为 0 吗?此规则是否有例外(可能是特定于编译器的)?
是的,如果编译器是 C 编译器,则所有未初始化的静态变量都将被初始化,就好像 { 0 }
一样。这意味着即使位模式不同,浮点数和指针也将被 { 0 }
初始化。
如果编译器有一个选项使其成为非 C 编译器,那么所有赌注都将取消。