条件预编译
#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”语句相比,使调试变得更容易。
参考资料:http://cppreference.com/wiki/cn/preprocessor/preprocessor_if