平台移植:不是所有硬件平台都能访问任意地址上的任意数据,某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。
性能原因:数据结构(尤其是栈)应尽可能地在自然边界上对齐,原因在于,为了访问未对齐的内存,处理器需要做两次内存访问,而对齐的内存仅需一次访问
总体来说结构体的内存对齐是拿空间换取时间的做法
可以通过#pragma pack(n)来改成你想要的默认对齐数
平台移植:不是所有硬件平台都能访问任意地址上的任意数据,某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。
性能原因:数据结构(尤其是栈)应尽可能地在自然边界上对齐,原因在于,为了访问未对齐的内存,处理器需要做两次内存访问,而对齐的内存仅需一次访问
总体来说结构体的内存对齐是拿空间换取时间的做法
可以通过#pragma pack(n)来改成你想要的默认对齐数