8、结构体【struct】

定义:

struct 类型名

{

成员列表;

} 变量名;

声明:

extern struct 变量名;

成员读:

x = 变量名.成员

成员写:

变量名.成员 = x

地址:

&变量名

存储大小:

sizeof(变量名)或者sizeof(struct类型名)

注意:sizeof求得的结构体的大小并不一定等于各个数据成员的大小之和

对齐规则:

结构体的大小等于其最大成员的整数倍;

结构体成员的首地址相对于结构体首地址的偏移量是其类型大小的整数倍。比如double型成员的首地址相对于结构体首地址的偏移量应该是8的倍数;

满足前两条规则后,编译器会在结构体成员之后进行字节填充。