编译错误在一个非常简单的C结构中。
编译错误在一个非常简单的C结构中。
此问题已有答案在此处:
typedef struct test { int a; }; int main(void) { test t; t.a = 3; }
上述代码无法编译。然而,当我将结构体更改为:
typedef struct { int a; }test;
一切正常。为什么会这样?我已经看到了许多代码示例,结构体与typedef在同一行上,但这些代码都无法编译。
admin 更改状态以发布 2023年5月23日
typedef
的一般语法为
typedef type-declaration alias-name; | | | | | | typedef struct {int a; } test; //2nd one is correct | | | | typedef struct test { int a;} ; //You missed the synonym/alias name here
Edit
请参考下面 Eric Postpischil 的评论
你将会得到一个 warning: useless storage class specifier in empty declaration
警告
参考: -这里