C语言 用结构体定义的变量使用时是不是都要加struct ? 使用结构变量时必须加结构名吗?C语言

作者&投稿:恭保 (若有异议请与网页底部的电邮联系)
定义的时候需要加上struct,使用的时候只需要名字就可以了,你如果使用C++编译器来编译的话,定义的时候不需要加上struct。

为什么 C 语言中声明结构体类型变量时必须加上 struct~

这里老版本的规范struct A {int a ;} ;准确来说struct A才是一种类型而A是未定义的
因此以前人们喜欢把typedef和struct一起用typedef struct tagA {int a ;} A ;这样就能少写struct
现在由于C++规范的影响,就不这样使用了

定义一个结构体类型,在申明变量时已“struct 结构体类型 变量名”的方式,使用的时候直接操作变量名就可以了。如果用typedef声明的数据类型,声明时只要“结构体类型(即新的变量类型 ) 变量名”就可以了。