c - typedef 结构说明

标签 c struct typedef

谁能解释一下这之间有什么区别:

typedef struct{
 char a[10];
 int b;
 char c[8];
 ...
}test;

还有这个:

typedef struct test{
 char a[10];
 int b;
 char c[8];
 ...
}test;

谢谢

最佳答案

typedef struct{
 char a[10];
 int b;
 char c[8];
 ...
}test;

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

typedef struct test{
 char a[10];
 int b;
 char c[8];
 ...
}test;

然而,这会创建一个名为 struct test 的结构,并为其添加一个 typedef

在第一种情况下,如果需要,您将无法转发声明struct
还有一个 philosophy (我恰好同意这一点),默认情况下 typedefing 所有结构会使代码的可读性降低,应该避免。

关于c - typedef 结构说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40975298/

相关文章:

无法通过引用将结构传递给函数

c - 具有另一个结构指针的结构的深拷贝

objective-c - Obj-c 中的 typedef 结构

c - 为什么 typedef'ing 会导致具有引用自身字段的结构出错?

c - APUE 的这段代码有什么问题?

c - 在 C 中解析文件中的指令的简单方法?

使用 char 数组的 C 结构初始化

struct - 尽管没有复杂的结构,但结构具有对象并且无法复制

c - 将结构体数组作为参数传递给函数

c++ - typedef 之间的兼容性问题