/U、/u(未定义符号)

/U 编译器选项可取消定义指定的预处理器符号。 /u 编译器选项可取消定义编译器定义的 Microsoft 特定符号。

语法

/U[ ]符号
/u

参数

符号
要取消定义的预处理器符号。

备注

/U/u 选项都不能取消定义使用 #define 指令创建的符号。

/U 选项可以取消定义以前使用 /D 选项定义的符号。

默认情况下,编译器可能会定义大量 Microsoft 特定的符号。 以下是一些常见符号:

符号 函数
_CHAR_UNSIGNED 默认 char 类型是无符号的。 指定 /J 选项时定义。
_CPPRTTI 为使用 /GR 选项编译的代码定义。
_CPPUNWIND 为使用 /EHsc 选项编译的代码定义。
_DLL 指定 /MD 选项时定义。
_M_IX86 默认情况下,对于 x86 目标,定义为 600。
_MSC_VER 定义为每个编译器版本的唯一整数值。 有关详细信息,请参阅预定义宏
_WIN32 为 WIN32 应用程序定义。 始终定义。
_MT 指定 /MD/MT 选项时定义。

有关 Microsoft 特定的预定义宏的完整列表,请参阅预定义宏

在 Visual Studio 开发环境中设置此编译器选项

  1. 打开项目的“属性页” 对话框。 有关详细信息,请参阅在 Visual Studio 中设置 C++ 编译器和生成属性

  2. 选择“配置属性”>“C/C++”>“高级”属性页。

  3. 修改“取消定义预处理器定义”或“取消定义所有预处理器定义”属性。

以编程方式设置此编译器选项

另请参阅

MSVC 编译器选项
MSVC 编译器命令行语法
/J(默认 char 类型是无符号的)
/GR(启用运行时类型信息)
/EH(异常处理模型)
/MD/MT/LD(使用运行时库)