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;
7. 链表中的使用方法
- typedef struct data
- {
- int value;
- struct data *next;//struct 必须要加
- }DATA;
- ????DATA?sum3;
来源: http://www.bubuko.com/infodetail-3335198.html