6.5 数据对齐
为什么要数据对齐
CPU硬件限制
不同硬件平台对存储空间的管理不同
为了简化CPU硬件设计,简化了地址访问
编译器会根据硬件平台选择合适的对齐方式
结构体对齐
对齐原则
结构体内各成员按各自自然对齐方式
结构体整体对齐方式:按最大成员对齐或其整数倍
联合体的对齐
对齐原则
按最大成员大小分配空间
联合体的对齐:各成员对齐字节数的最小公倍数
显示指定对齐方式
#pragma pack(8)
__attribute__((aligned(8)))
__attribute__((packed))