目的:优化CPU访问数据效率
类型转换:未对齐时,严格一些的系统会报段错误,未报错的话效率也会有所下降。
各种结构的对齐:
编译器的区别:
其实字节对齐的细节和具体编译器实现相关,但一般而言,满足三个准则:(from baike)
1) 结构体变量的首地址能够被其最宽基本类型成员的大小所整除;
2) 结构体每个成员相对于结构体首地址的偏移量都是成员大小的整数倍,如有需要编译器会在成员之间加上填充字节;例如上面第二个结构体变量的地址空间。
3) 结构体的总大小为结构体最宽基本类型成员大小的整数倍,如有需要编译器会在最末一个成员之后加上填充字节。
详细见:http://blog.csdn.net/21aspnet/article/details/6729724/