typedef结构说明

Car*_*ato 1 c struct typedef

任何人都可以解释一下这有什么区别:

typedef struct{
 char a[10];
 int b;
 char c[8];
 ...
}test;
Run Code Online (Sandbox Code Playgroud)

还有这个:

typedef struct test{
 char a[10];
 int b;
 char c[8];
 ...
}test;
Run Code Online (Sandbox Code Playgroud)

谢谢

Sto*_*ica 5

typedef struct{
 char a[10];
 int b;
 char c[8];
 ...
}test;
Run Code Online (Sandbox Code Playgroud)

上面定义了一个匿名结构,并立即将其定义typedef为类型别名test.

typedef struct test{
 char a[10];
 int b;
 char c[8];
 ...
}test;
Run Code Online (Sandbox Code Playgroud)

但是,这会创建一个名为struct的结构struct test,并为其添加一个结构typedef.

在第一种情况下,struct如果需要,您将无法转发声明.
还有一种哲学(我碰巧同意一点),typedef默认情况下所有结构都会使代码的可读性降低,应该避免使用.