gpt4 book ai didi

c - 为什么在初始化这个结构时需要更多的花括号?

转载 作者:太空狗 更新时间:2023-10-29 14:54:54 27 4
gpt4 key购买 nike

起初我尝试初始化这样一个结构:

struct {
char age[2]; // Hold two 1-Byte ages
} studage[] = {
{23, 56},
{44, 26}
};

但这给了我一个关于缺少大括号的编译器警告,所以我按照编译器的建议使用了更多的大括号,结果是这样的:

struct {
char age[2]; // Hold two 1-Byte ages
} studage[] = {
{{23, 56}},
{{44, 26}}
};

没有警告。为什么我需要额外的牙套?

最佳答案

你有一组结构,该结构有一个成员是一个数组。

struct {
char age[2]; // Hold two 1-Byte ages
} studage[] = {
^
This is for the studage array
{ { 23, 56}},
^ ^
| this is for the age array
this is for the anonymous struct

{{44, 26}}
};

也许更容易查看您的结构是否有另一个成员:

struct {
int id;
char age[2];
} studage[] = {
{1, {23, 56}},
^ ^ ^
id | |
age[0] |
age[1]
};

关于c - 为什么在初始化这个结构时需要更多的花括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26735710/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com