Fork me on GitHub
  2012年9月6日
摘要: Win32平台下的微软C编译器(cl.exe for 80×86)的对齐策略:1) 结构体变量的首地址能够被其最宽基本类型成员的大小所整除;备注:编译器在给结构体开辟空间时,首先找到结构体中最宽的基本数据类型,然后寻找内存地址能被该基本数据类型所整除的位置,作为结构体的首地址。将这个最宽的基本数据类型的大小作为上面介绍的对齐模数。2) 结构体每个成员相对于结构体首地址的偏移量(offset)都是成员自己大小的整数倍(实际上是成员自己的对齐位数,如后面的union A是8byte对齐,非最大成员的对齐位数),如有需要编译器会在成员之间加上填充字节(internal adding);备注 阅读全文
posted @ 2012-09-06 17:03 loopever 阅读(393) 评论(0) 推荐(0) 编辑