017 虚拟内存 64位及内存对其 3

# 64位及内存对其
  ● 内存对齐
    ○ 内存取%页面大小
    ○ 如果内存没有对齐
      CPU无法正常读取数据
      CPU会使用错位的方式读取数据
      延缓我们对数据的操作性

  ● 获取页面大小
    ○ AMD INTER CPU x64 x86 的CPU
      页面大小 4kb
    ○ IA64 英特尔 的服务器平台
      至强CPU系列
      页面对其大小是 8kb
    ○ IA64程序运行
      32位程序

读取内存页面的大小

1 #include <windows.h>
2 #include <stdio.h>
3 int main()
4 {
5     SYSTEM_INFO systemInfo = {0};
6     GetSystemInfo(&systemInfo);
7     printf("%d",systemInfo.dwPageSize);    //页面大小 4kb 获取页面大小
8     return 0;
9 }

  ● 判断32位程序是否在64位系统下运行

 1 #include <windows.h>
 2 #include <stdio.h>
 3 #include <Shlwapi.h>
 4 
 5 #pragma comment( lib, "shlwapi.lib")
 6 int main()
 7 {
 8     BOOL bIs64;
 9     IsWow64Process(INVALID_HANDLE_VALUE, &bIs64);
10     BOOL Os =  IsOS(OS_WOW6432);
11     if(bIs64)
12         printf("32位进程运行在64位系统下!
");
13     if(Os)
14         printf("Os判断 32位进程运行在64位系统下!
");
15     SYSTEM_INFO systemInfo = {0};
16     GetSystemInfo(&systemInfo);
17     printf("%d",systemInfo.dwPageSize);    //页面大小 4kb 获取页面大小
18     return 0;
19 }

原文地址:https://www.cnblogs.com/sdk123/p/7192638.html