c语言结构体定义的几种形式
转自https://blog.csdn.net/ziguo2010/article/details/79897327
1、最常用定义方式:定义结构体data,此时结构体相当于一个类型,比如int,如需使用此结构体,方法同int
struct data
{
char aa;
char bb;
char cc;
int dd;
};
struct data sum1, sum2;
2、定义结构体data同时,定义需要使用的结构体变量sum1,sum2。如后面再需要定义结构体变量,方法同1
struct data
{
char aa;
char bb;
char cc;
int dd;
}sum1, sum2;
struct data sum3;
3、定义结构体时,结构体名称缺省,同时定义结构体变量sum1,sum2。但后面不可再定义结构体变量!
struct
{
char aa;
char bb;
char cc;
int dd;
}sum1, sum2;
struct sum3; <- 编译器报错
4、使用typedef 定义结构体,定义结构体data时,使用typedef,此种形式几乎不使用,再定义结构体变量时,仍需加struct,否则编译器报错!
typedef struct data
{
char aa;
char bb;
char cc;
int dd;
};
struct data sum3;
5、使用typedef定义结构体同时,给data结构体别名DATA,后续定义可不用使用struct data,直接使用DATA即可。
typedef struct data
{
char aa;
char bb;
char cc;
int dd;
}DATA;
struct data sum3; <- 可用,但不推荐
DATA sum1; <- 最常用方式
6、使用typedef定义结构体时,省掉结构体第一个别名data,直接在后面加DATA,使用方法同5。
typedef struct
{
char aa;
char bb;
char cc;
int dd;
}DATA;
DATA sum3;