总原则:结构体变量占据的内存单元的个数应当大于等于其内部所有数据成员占据内存单元数的和。
出于效率的考虑,C预言引入了字节对齐机制,一般来说,不同的编译器字节对齐机制有所不同,但还是有以下3条通用原则:
1、结构体变量的大小能够被其最宽基本类型成员的大小所整除
2、结构体每个成员相对于结构体首地址的偏移量都是成员大小的整数倍,如有需要编译器会在成员之间加上填充字节
3、结构体的总大小为结构体最宽基本类型成员大小的整数倍,如有需要编译器会在最末一个成员之后加上填充字节(数组、结构体和共用体都不是基本类型)