Loading... ## 序言 我们都知道typedef可以给各种类型取一个别名 结构体当然也不例外 ## 常见的定义一个struct: ```cpp struct tag { int a; int b; } Tag; ``` 这里的tag只是一个标签,并不是类型,而struct tag才是一个完整的类型,定义变量需要: ```cpp struct tag variable; ``` 而上面的Tag在定义struct结构体的时候定义的一个变量。 ## 另外一种定义一个struct ```cpp typedef struct { int a; int b; }name; ``` 这里的name是一个struct类型的别名,可以用来直接定义变量,比如: ```cpp name variable2; ``` 上面的struct本身是一个匿名的struct。 ## 两者区别 ```cpp typedef struct tag { int a; int b; }name; ``` 相当于先定义struct tag,然后typedef起别名一样。 可以使用 ```cpp name variable3; struct tag variable4; ``` 来定义变量。 大概就是只typedef而不给tag的话,之后定义变量只能用name而不能用struct tag了。 最后修改:2021 年 07 月 18 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 1 如果文章有用,请随意打赏。