原则
- 当前变量之前的所有变量所占空间和是当前变量的整倍数(不理解等下看例子)
- 如果不是正倍数需要对齐之前的数据
- struct变量整体的大小应该是struct中最宽基本类型元素大小的整数倍
使用方法,先根据规则1 ,最后根据规则2
假设 char 1字节 short 2 字节 int 4 字节 double 8 字节
@1 表示根据规则1 @ 1 => 表示根据规则1 得出结论
根据规则1 得出目前所占字节 2+2+4+8 = 16 满足规则2的原则 所以 占16字节空间
根据规则1 得出目前所占字节 8+8+4+4 = 24满足规则2的原则 所以 占24字节空间
根据规则1 得出目前所占字节 8+8+4+2 = 22不满足规则2的原则
按照规则2 最大字节是8 ,8*3>=22 =>所占空间24
根据规则1 得出目前所占字节 2+2+4+8 = 16满足规则2的原则 所以 占16字节空间
准则:一般结构体类型按照字节从小到大,或者从大到小编写 ;就能最节省内存
如有不对请不吝指正