想必大家已经涉及过内存对齐的问题,这个问题已经被讨论过很多次,上网一搜一大票。
1 内存对齐的作用:
为了提高程序的性能,数据结构(尤其是栈)应该尽可能地在自然边界上对齐。原因在于,为了访问未对齐的内存,处理器需要作两次内存访问;然而,对齐的内存访问仅需要一次访问。
2 如何禁止内存对齐?
可以使用#pragma pack编译指令。
3 主要什么情况下要禁止内存对齐?
a 为了实现跨平台编程,避免不同编译器之间的区别。
b 需要通过偏移量来访问结构体成员。
c 节省空间。(实际上这中情况可以忽略,毕竟现在的存储空间已经很大了)