什么是字节对齐?为什么字节对齐?
计算机中内存大小的基本单位是字节(byte),理论上来讲,可以从任意地址访问某种基本数据类型,但是实际上,计算机并非逐字节大小读写内存,而是以2,4,或8的 倍数的字节块来读写内存,如此一来就会对基本数据类型的合法地址作出一些限制,即它的地址必须是2,4或8的倍数。那么就要求各种数据类型按照一定的规则在空间上排列,这就是对齐。
该怎么对齐?
对齐准则是什么
总的来说,字节对齐有以下准则:
结构体变量的首地址能够被其对齐字节数大小所整除。(从0开始)
结构体每个成员相对结构体首地址的偏移都是成员大小的整数倍,如不满足,对前一个成员填充字节以满足。
结构体的总大小为结构体对最大成员大小的整数倍,如不满足,最后填充字节以满足。