#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 的结尾