x86的字节对齐与不对齐的问题
比如这么一个结构体
struct foo {
short s;
int n;
};
struct foo bar;
假设bar的地址是0x12345670
如果不按4字节对齐
那么bar.n的地址就是0x12345672, 也就是下面的黑体部分
0x12345670 a0 a1 a2 a3
0x12345674 b0 b1 b2 b3
为了取到n的值就需要访问两次内存,一次访问0x12345670,一次访问0x12345674
然后把两个int值组合在一起,a2 a3 b0 b1
http://www.doc88.com/p-205512154878.html 此文中说明更加详细易懂
引用自 http://bbs.csdn.net/topics/390291667?page=1
http://www.cnblogs.com/lancidie/archive/2011/08/18/2144071.html
posted on 2013-09-29 11:42 xiaofangne 阅读(530) 评论(0) 编辑 收藏 举报