我在C中发现了一种特殊的行为。请考虑以下代码:
struct s {
int a;
};
struct z {
int a;
struct s b[];
};
int main(void) {
return 0;
}
它编译就好了。然后z
像这样更改struct成员的顺序
struct z {
struct s b[];
int a;
};
突然之间我们得到了编译错误field has incomplete type 'struct s []'
。
这是为什么?