我有这两种结构的...为了两个结构
typedef struct{
MY_SECOND_STRUCT s1;
}MY_FIRST_STRUCT;
typedef struct{
int s1;
}MY_SECOND_STRUCT;
我喜欢这个顺序,我不希望他们进行切换。 但是编译器不知道此刻MY_SECOND_STRUCT,我得到错误
error: expected specifier-qualifier-list before 'MY_SECOND_STRUCT'
从来就试图定义添加声明顶端
struct MY_SECOND_STRUCT;
也改为
typedef struct{
struct MY_SECOND_STRUCT s1;
}MY_FIRST_STRUCT;
但它没有帮帮我。
这里的其他答案很好。您可能想知道为什么您可以转发声明结构,然后声明一个指针 - 编译器知道指针的大小,因此它可以确定包含它的结构的大小,但它不知道大小第二个结构,所以它不能定义一个包含它的结构。 –