条件预编译

来自cppreference.com


#if, #ifdef, #ifndef, #else, #elif, #endif

通过这6条预编译指令可以简单控制编译器的行为,当文件被编译时,可以使用这些命令来控制一些特定的行被编译或不被编译。

     #if expression

如果表达式为真,命令后边的代码被编译。

     #ifdef macro

如果宏被使用 #define 定义,命令后边的代码被编译。

     #ifndef macro

如果宏没有被使用 #define 定义,命令后边的代码被编译。

A few side notes: #elif 命令是一种缩略形式,它和"elseif"具有同样的作用,你也可以在#if之后使用"defined"或者"!defined"来扩展功能。

下边是一个例子:

     #ifdef DEBUG
       cout << "This is the test version, i=" << i << endl;
     #else
       cout << "This is the production version!" << endl;
     #endif

你应该注意到,这个例子和在代码中插入/删除大量的"cout"语句相比,使调试变得更容易。

相关主题: #define