我正在学习C语言而且我遇到了问题。
我有一个结构,我用{0}初始化它:
struct first
{
char a[5];
int b;
}first= {0};
我正在尝试在另一个结构中创建此结构的数组,数组中的每个元素都具有值{0}:
struct second
{
first f_array[20];
};
然而,当我编译时,它会说错误:在'first'之前的期望说明符 - 限定符列表。
任何人都知道如何在其他结构中创建一个结构数组,就像我正在尝试做的那样?
答案 0 :(得分:1)
这是因为编译器无法解析first
的类型,除非您在数组的声明中包含关键字struct
,如下所示:
struct first f_array[20];
或使用typedef
:
typedef struct {
char a[5];
int b;
} first;
struct second {
first f_array[20];
};
struct second obj = {{0}};
使用typedef
意味着您不再需要在整个地方编写struct
并使代码更清晰。