我知道在 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。如果我们这样做复合初始化是什么原因。