【发布时间】:2014-10-12 18:03:06
【问题描述】:
我知道在 C99 中,您可以使用成员名称初始化结构的成员,如下所示:
struct myStruct
{
int i;
char c;
float f;
};
所以以下是有效的:
struct myStruct m = {.f = 10.11, .i = 5, .c = 'a'};
据说未初始化的成员将被设置为0。所以
struct myStruct m = {.f = 10.11, .c = 'a'};
此处i 将设置为0
但是,对于以下内容:
struct myStruct m = {.f = 10.11, .c = 'a', 6};
i仍然初始化为0。如果我们做这样的复合初始化是什么原因。
【问题讨论】:
标签: c initialization structure c99 designated-initializer