# 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 }