#ifdef和#ifndef指令(c/C++)

#ifdef#ifndef 指令执行任务和 #if 指令相同,则使用 定义时 ( 标识符 )。

#ifdef identifier
#ifndef identifier

// equivalent to
#if defined identifier
#if !defined identifier

备注

可以使用 #ifdef ,并且可用于 #ifndef 指令的任何位置 #if 。 #ifdef 标识符 语句与#if 1等效,在 标识符 中定义时,,并且与#if 0等效,如果 标识符 未定义也未未定义与 #undef 指令时。 这些指令只检查定义的是否存在标识符与 #define,而在 C 或 C++ 源代码中声明的标识符的。

这些指令是为了只随该语言的早期版本。 定义 ( *标识符 *) 常数表达式用于 #if 指令首选方法。

#ifndef 指令检查 #ifdef检查的条件的相反值。 如果未定义标识符 (或其定义中移除了 #undef),条件是真 (非零)。 否则,该条件为 false (0)。

Microsoft 专用

使用 /D 选项,标识符可以从命令行通过。 30 宏可以指定与 /D。

对于检查定义是否存在,有用,因为定义可以从命令行通过。 例如:

// ifdef_ifndef.CPP
// compile with: /Dtest /c
#ifndef test
#define final
#endif

特定于 Microsoft 的结尾

请参见

参考

预处理器指令