Visual Studio 编译器(2005 到 2008)为 x86/x64 位环境定义了四个宏。参考预定义宏
- _M_X64 为 x64 处理器定义。
- _M_IX86 为 x86 处理器定义。有关详细信息,请参阅下表 _M_IX86 的值。这不是为 x64 处理器定义的。
- _WIN32 为 Win32 和 Win64 的应用程序定义。始终定义。
- _WIN64 为 Win64 应用程序定义。
现在在 x32 位机器上永远不会设置 _M_X64。在 64 位机器上,如果您在 32 位环境上构建,_M_X64 将被取消设置,_M_IX86 将被定义。无论 32/64 位版本如何,总是定义 _WIN32。
在所有 x64 处理器中,_M_X64 是否有特殊意义?当目标为 x64 时,_M_X64 未定义是否会出现这种情况?