1:字、双字和四字在内存中并不需要对齐至自然边界(字、双字和四字的自然边界是偶数编号的地址,对于双字和四字来说,抵制要分别能够被4和8整除)。
2:然而,为改进程序的性能,数据结构(特别是堆栈)只要可能,应对齐在自然边界上。理由是:对于不对齐的存储访问,处理器要求做两次存储访问操作; 对于对齐的访问,处理器只要做一次存储访问操作。
以上两点摘自与IA-32指令系统一书。
我有个疑问,对于不同语言,比如c,c++,c#还有脚步语言如perl或动态语言python再或前台页面的语言javascript, 它们在编码中,在给数据对象分配内存空间时,都是怎么做到位置对齐的。