struct ByteAlign
{
double memOne;
char memTwo;
int memThree;
};
书中说“编译器在为结构体变量分配空间时,保证下一个成员的偏移量应为该成员数据类型长度的整数倍。”
以为分配memTwo为例,“下一个成员的偏移量”是8,然后“该成员数据类型长度”是指memOne吗?那就是8字节了。
但是,再给memThree分配,“下一个成员的偏移量”是9,然后“该成员数据类型长度”是指memTwo,得出是1字节,但是9与1是整除的阿?那不就自相矛盾了?