宏
|
说明
|
_ATL_VER
|
定义 ATL 版本,编码为整数文本。
|
__AVX__
|
指定了
/arch:AVX
或
/arch:AVX2
时进行定义。
|
__AVX2__
|
指定了
/arch:AVX2
时进行定义。
|
_CHAR_UNSIGNED
|
默认 char 类型为 unsigned。 指定了
/J
时进行定义。
|
__CLR_VER
|
编译应用程序时,定义使用的公共语言运行时的版本。 返回值是采用以下格式编码的整数文本:
Mmmbbbbb
其中,
-
M 为运行时的主版本
-
mm 为运行时的次版本
-
bbbbb 为生成号。
|
__cplusplus_cli
|
当使用
/clr
、
/clr:pure
或
/clr:safe
编译时定义。 __cplusplus_cli 的值是整数文本 200406。 __cplusplus_cli 的效力范围是整个翻译单元。
|
__cplusplus_winrt
|
当使用
/ZW
选项来编译时定义。 __cplusplus_winrt 的值是整数文本 201009。
|
__COUNTER__
|
扩展成一个以 0 开始的整数文本,该整数每次用于源文件或源文件包含的标头时增加 1。 当你使用预编译标头时,
__COUNTER__
会记住其状态。
下面的示例使用 __COUNTER__,将唯一标识符分配到同一类型的三个不同的对象。
首先,假设以下类定义。 构造函数将一个整数作为参数。
C++
在主窗格中,应用程序声明类型为
exampleClass
的三个对象,并将 __COUNTER__ 用作唯一标识符参数。
C++
|
__cplusplus
|
仅定义 C++ 程序。
|
_CPPRTTI
|
定义使用
/GR
(启用运行时间类型信息)编译的代码。
|
_CPPUNWIND
|
定义通过使用其中一个
/EH(异常处理模型)
标志编译的代码。
|
_DEBUG
|
当使用
/LDd
、
/MDd
和
/MTd
编译时定义。
|
_DLL
|
在指定
/MD 或 /MDd
(多线程 DLL)时定义。
|
__FUNCDNAME__
|
仅在函数中有效。 将封闭函数的
修饰名
定义为字符串文本。
如果你使用的是
__FUNCDNAME__
/EP 或
/P
编译器选项,
不展开。
下面的示例使用 __FUNCDNAME__、__FUNCSIG__ 和 __FUNCTION__ 宏来显示函数信息。
C++
|
__FUNCSIG__
|
仅在函数中有效。 将封闭函数的签名定义为字符串文本。
如果你使用的是
__FUNCSIG__
/EP 或
/P
编译器选项,
不展开。
在 64 位操作系统上,调用约定默认为 __cdecl。
有关示例,请参见 __FUNCDNAME__。
|
__FUNCTION__
|
仅在函数中有效。 将封闭函数的未修饰名定义为字符串。
如果你使用的是
__FUNCTION__
/EP 或
/P
编译器选项,
不展开。
有关示例,请参见 __FUNCDNAME__。
|
_INTEGRAL_MAX_BITS
|
报告整型作为整形文本的最大大小(以位为单位)。
|
_M_AMD64
|
为面向 x64 处理器的编译进行定义。
|
_M_ARM
|
为面向 ARM 处理器的编译进行定义。
|
_M_CEE
|
定义使用任何形式的
/clr
(例如
/clr:oldSyntax
、
/clr:safe
)的编译。
|
_M_CEE_PURE
|
定义使用
/clr:pure
的编译。
|
_M_CEE_SAFE
|
定义使用
/clr:safe
的编译。
|
_M_IX86
|
为面向 x86 处理器的编译进行定义。 这不是为 x64 处理器定义的。
|
_M_ARM_FP
|
扩展为指示使用哪个
/arch
编译器选项的整数型值:
-
在 30-39 的范围内,如果未指定
/arch
ARM 选项,则表明使用的是 ARM 的默认体系结构(VFPv3)。
-
如果使用
/arch:VFPv4
,则在 40-49 的范围内。
-
有关更多信息,请参见
/arch (x86)
。
|
_M_IX86_FP
|
扩展为指示使用哪个
/arch
编译器选项的整数型值:
|
_M_X64
|
为面向 x64 处理器的编译进行定义。
|
_MANAGED
|
当指定
/clr
时,定义为 1。
|
_MFC_VER
|
定义 MFC 版本,编码为整数文字。
|
_MSC_BUILD
|
计算结果为整数文字,其中包含编译器的版本号的修订号组合。 修订号为用句点分隔的版本号的第四个部分。 例如,如果 Visual C++ 编译器的版本号为 15.00.20706.01,则
_MSC_BUILD
宏计算结果为 1。
|
_MSC_EXTENSIONS
|
在使用
/Ze
编译器选项(默认值)进行编译时,就定义了该宏。 定义时,值为 1。
|
_MSC_FULL_VER
|
计算结果为整数文字,其编码编译器的主版本号、次版本号和生成版本号的组合。 主版本号时句点分隔的版本号的第一个部分,次版本号是第二个部分,而生成号是第三个部分。 例如,如果 Visual C++ 编译器的版本号为 15.00.20706.01,则
_MSC_FULL_VER
宏计算结果为 150020706。 在命令行中键入
cl /?
,查看编译器的版本号。
|
_MSC_VER
|
计算结果为整数文字,其编码编译器的版本号的修订号组合。 主版本号是句点分隔的版本号的第一个部分,而次版本号是第二个部分。
例如,如果 Visual C++ 编译器的版本号为 17.00.51106.1,则
_MSC_VER
宏计算结果为 1700。 在命令行中键入
cl /?
,查看编译器的版本号。
|
__MSVC_RUNTIME_CHECKS
|
当指定其中一个
/RTC
编译器选项时定义。
|
_MT
|
当指定
/MD 或 /MDd
(多线程 DLL)或
/MT 或 /MTd
(多线程)时定义。
|
_NATIVE_WCHAR_T_DEFINED
|
当使用
/Zc:wchar_t
时定义。
|
_OPENMP
|
当使用 /openmp 进行编译时定义,求值得出表示由 Visual C++ 实现的 OpenMP 规范日期的整数文本。
|
_VC_NODEFAULTLIB
|
当使用
/Zl
时定义;有关详细信息,请参阅
/Zl(省略默认库名)
。
|
_WCHAR_T_DEFINED
|
当项目中包含的系统标头文件使用
/Zc:wchar_t
或者定义 wchar_t 时定义。
|
_WIN32
|
定义 Win32 和 Win64 的应用程序。 始终定义。
|
_WIN64
|
定义为Win64应用程序。
|