Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将使用4或8对齐规则将进程加载到内存中_C++_Linux_Memory - Fatal编程技术网

C++ 将使用4或8对齐规则将进程加载到内存中

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

我刚刚学习了4或8个内存对齐,然后开始问这个问题

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

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


如果没有,请告诉我原因。谢谢。XD

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


(*)对于小于一个字且连续打包以节省内存的项目除外;e、 g.
char
uint_8
数组中的许多单独元素不一定是单词对齐的。

明白了。谢谢。:)“甚至倍数”是一种轻描淡写的说法。页面大小(如对齐)是二的幂,因此它们的比率也是。