C++ 将使用4或8对齐规则将进程加载到内存中
我刚刚学习了4或8个内存对齐,然后开始问这个问题 内存对齐会发生在虚拟内存空间还是绝对地址中 我猜答案是虚拟内存空间,操作系统会将进程加载到绝对地址以“0X00”或“0X0”结尾的位置C++ 将使用4或8对齐规则将进程加载到内存中,c++,linux,memory,C++,Linux,Memory,我刚刚学习了4或8个内存对齐,然后开始问这个问题 内存对齐会发生在虚拟内存空间还是绝对地址中 我猜答案是虚拟内存空间,操作系统会将进程加载到绝对地址以“0X00”或“0X0”结尾的位置 如果没有,请告诉我原因。谢谢。XD在适当的情况下,虚拟地址和实际地址都将与CPU的本机字大小对齐(*)。(原因是虚拟到物理的映射是在每页的基础上完成的,内存页的大小始终是CPU本机字大小的偶数倍) (*)对于小于一个字且连续打包以节省内存的项目除外;e、 g.char和uint_8数组中的许多单独元素不一定是单词
如果没有,请告诉我原因。谢谢。XD在适当的情况下,虚拟地址和实际地址都将与CPU的本机字大小对齐(*)。(原因是虚拟到物理的映射是在每页的基础上完成的,内存页的大小始终是CPU本机字大小的偶数倍)
(*)对于小于一个字且连续打包以节省内存的项目除外;e、 g.
char
和uint_8
数组中的许多单独元素不一定是单词对齐的。明白了。谢谢。:)“甚至倍数”是一种轻描淡写的说法。页面大小(如对齐)是二的幂,因此它们的比率也是。