MSVC 的 _M_X64 预定义宏说明

Posted

技术标签:

【中文标题】MSVC 的 _M_X64 预定义宏说明【英文标题】:MSVC's _M_X64 Predefined Macro Clarification 【发布时间】:2009-08-28 21:26:17 【问题描述】:

MSVC's Predefined Macros 的文档状态“_M_X64 [is] Defined for x64 处理器。”这到底是什么意思?是否会被定义:

当我为 x64 处理器构建 时,或 当我在构建 x64 处理器时?

具体来说,我正在为前一种情况寻找编译器开关,而不是后者。 _M_X64 能满足这个目的吗?

【问题讨论】:

【参考方案1】:

表示 _M_X64 是目标处理器。这是您正在构建的目标,而不是您正在构建的基础。

【讨论】:

【参考方案2】:

表示可以这样输入代码。

#ifdef _M_X64
#pragma comment(lib, "TEST64BIT.LIB")
#else
#pragma comment(lib, "TEST32BIT.LIB")
#endif

【讨论】:

以上是关于MSVC 的 _M_X64 预定义宏说明的主要内容,如果未能解决你的问题,请参考以下文章

标准数据类型宏定义

不同系统宏定义

不同系统宏定义

编译器之WIN64预定义宏和数据对齐设置对结构体大小的影响

最有用的 MSVC++ 非标准宏

MSVC++ 可变参数宏扩展