结构体 字节对齐
任何数据的起始地址都是系统字长(系统的数据总线宽度)的整数倍。一个结构体被看做是一个数据整体,那么在保证了结构体的起始地址是字长整数倍的时候,就有可能导致其中数据成员的起始地址不是字长整数倍,再从而导致读取一个成员的内容要访问两次内存。所以编译器就会对结构体的成员的存储地址进行调整,使其能保证所有低于等于一个字长的数据都能在一次内存读取中完成。
Code
顺便加点大端小端。
大端是高位数据在低地址,小端是地位数据在低地址。
我们一般是小端。Big Endian and Little Endian come from the story of egg.