暂无图片
内存对齐是什么概念?
我来答
分享
愿世间无疾无病
2022-12-21
内存对齐是什么概念?

内存对齐是什么概念?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
yBmZlQzJ

许多计算机体系结构要求特定的类型必须放在特定的内存地址上。例如它可能要求指针的地址必须是4的倍数或double的地址必须是8的倍数。如果没有这个约束条件,可能会导致运行时硬件异常。有些体系结构是如果齐位条件获得满足便提供最佳效率。

数据对齐分为自然对齐和强制对齐,注意这里讲的对齐是指数据地址的对齐。 自然对齐,各个类型变量的内存地址必须是其类型本身的整数倍。结构体对齐到成员最大长度类型的整数倍。

不同的硬件平台对存储空间的处理上有很大的不同,有些平台对某些类型的数据只能从特定地址开始存取否则就会出错;另外一些平台可能不会出错但会影响处理效率,本来一个指令周期就可以完成的操作,可能需要两个指令周期还需要把数据拼在一起处理。例如,对于从奇数边界去访问unsigned short型变量,显然不符合对齐的规定。在x86上,类似的操作只会影响效率,但是在MIPS或者sparc上,可能就是一个error,因为它们要求必须字节对齐。

暂无图片 评论
暂无图片 有用 2
暂无图片
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏