首页 > 解决方案 > 将使用 4 或 8 对齐规则处理加载到内存中

问题描述

我刚刚了解了 4 或 8 内存对齐并提出了这个问题。

内存对齐会发生在虚拟内存空间还是绝对地址中?

我猜答案是虚拟内存空间,操作系统会将进程加载到绝对地址以'0X00'或'0X0'结尾的位置。

如果不是,请告诉我为什么。非常感谢。XD

标签: c++linuxmemory

解决方案


虚拟地址和实际地址都将在适当的情况下与 CPU 的本机字大小对齐 (*)。(原因是虚拟到物理的映射是在每页的基础上完成的,并且内存页的大小始终是 CPU 原生字大小的偶数倍)。

(*) 小于一个单词的项目例外,并且连续打包在一起以节省内存;char例如,和数组中的许多单独元素uint_8不一定是字对齐的。


推荐阅读