C 和 C 中自动结构体和数组的部分初始化
GNU C 参考手册指出,如果结构体变量未初始化,其成员的价值观是不确定的。但是,标准没有定义结构体或数组的部分初始化。
部分初始化术语
“部分初始化”是指为以下对象提供一些但不是全部初始化器聚合(数组或结构)。
自动结构和的初始化规则数组
C 和 C 标准为自动结构体和数组的初始化指定了以下规则:
部分初始化行为
尽管标准中没有明确定义部分初始化,但所有主流编译器都遵循以下规定行为:
示例
以下 C代码部分初始化一个结构体:
struct S { int a; char* b; int c; }; S s = {1, "asdf"};
在此示例中,s.a 被初始化为1、s.b 被初始化为“asdf”,而 s.c 因未显式初始化而为零初始化。
以上是C 和 C 中的自动结构和数组如何部分初始化?的详细内容。更多信息请关注PHP中文网其他相关文章!