结构体主要分为三个部分:结构体、联合体、和枚举三个类型。
一、结构体
1、形式为:struct 标签
{
成员
};
在main 函数中定义变量时为:struct 标签 变量名
2、计算结构体大小
例如该结构体的大小为8字节,
原因如下:
这其中涉及到了对齐问题,其对其原则为:
(1)结构的第一个成员永远放在0偏移处;
(2)从第二个成员开始都要对齐到某个对齐数的整数倍
【对齐数为结构成员自身大小和默认对齐数(VS:8 Linux:4)的较小值】
(3)结构自身的大小必须是最大对齐数的整数倍
二、联合体 union
1、计算联合体大小
共同占用一块空间,空进大小是最大整形的整数倍【最大字节数+部分字节数(最后的空余字节数)】
三、枚举 enum
注:枚举类型从第一个成员开始算0,依次往后推算1 2 3......