#ifdef 和 #ifndef 指令
预处理器指令,用于确定是定义特定的预处理器常量还是宏。
#ifdef 标识符 ... |
---|
#endif |
#ifndef 标识符 ... |
#endif |
parameters
项 | 说明 |
---|---|
标识符 |
要检查的常量或宏的标识符。 |
备注
可以在#if使用的任何位置使用 #ifdef 和 #ifndef 指令。 #ifdef 语句等效于 ) 指令。 这些指令仅针对是否存在使用 #define 指令定义的标识符而检查,而不适用于 C 或 C++ 源代码中声明的标识符。
提供这些指令只是为了实现与该语言的早期版本的兼容性。 首选将 定义的 运算符与 #if 指令一起使用。
#ifndef 指令检查 #ifdef 所检查的条件的相反值。 如果未定义标识符,则条件为 true (非零) ;否则,条件为 false (零) 。
示例
可使用 /D 选项从命令行中传递 identifier。 可使用 /D 指定最多 30 个宏。 这对于检查定义是否存在很有用,因为可以从命令行中传递定义。 以下示例使用此行为确定是否在测试模式下运行应用程序。
// PROG.CPP
#ifndef test
#define final
#endif
int main()
{
}
使用以下命令编译时,prog.cpp 将在测试模式下进行编译:否则,它将在最终模式下进行编译。
CL.EXE /Dtest prog.cpp