MSDN 里说,VC 有 3 个预处理常量,分别是 _WIN32,_WIN64,WIN32。


只要包含了 Windows.h,那么 WIN32 常量是肯定定义了的,所以不能用于判断平台环境(如果x64预编译器中未定义WIN32,可以手动加上去)


Win32 配置下,_WIN32 有定义,_WIN64 没有定义。在 x64 配置下,两者都有定义。即在 VC 下,_WIN32 一定有定义。

WIN32/_WIN32 可以用来判断是否 Windows 系统(对于跨平台程序),而 _WIN64 用来判断编译环境是 x86 还是 x64


一般VS选用win32控制台程序,和win32编译方式,因为兼容性比较好,可以在32位操作系统上运行,也可以在64位操作系统上运行。