错误:创建结构数组之前的预期说明符限定符列表

时间:2016-11-26 05:44:07

标签: c struct

我正在学习C语言而且我遇到了问题。

我有一个结构,我用{0}初始化它:

struct first
{
    char a[5];
    int b;
}first= {0};

我正在尝试在另一个结构中创建此结构的数组,数组中的每个元素都具有值{0}:

struct second
{
    first f_array[20];
};

然而,当我编译时,它会说错误:在'first'之前的期望说明符 - 限定符列表。

任何人都知道如何在其他结构中创建一个结构数组,就像我正在尝试做的那样?

1 个答案:

答案 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并使代码更清晰。