【发布时间】:2017-01-26 11:03:52
【问题描述】:
来自 C99 标准中的6.7.8.10:
如果具有自动存储持续时间的对象未显式初始化,则其值为 不定。如果具有静态存储持续时间的对象未显式初始化, 那么:
——如果是指针类型,则初始化为空指针;
——如果是算术类型,则初始化为(正或无符号)零;
——如果是聚合,则每个成员都根据这些规则(递归地)初始化;
——如果它是一个联合,第一个命名的成员根据这些被初始化(递归) 规则。
任何类型(数组、结构、位域)的全局变量是否总是定义为static storage?
【问题讨论】:
-
是的,只要它们存储在
bss部分。 -
哦!这才是重点。如何确保它在
bss部分? -
“全局变量”不是 C 标准使用的术语。 “具有静态存储持续时间的对象”是。如果您仍然不清楚,也许可以准确描述“全局变量”的含义
标签: c variables initialization c99