1、条件编译命令最常见的形式为:
#ifdef 标识符 程序段1 #else 程序段2 #endif
当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2。 其中#else部分也可以没有,即:
1 #ifdef 2 程序段1 3 #endif
2、条件编译命令另一种形式:
1 #ifndef 标识符 2 程序段1 3 #else 4 程序段2 5 #endif
只是第一行与第一种形式不同:将“ifdef”改为“ifndef”。它的作用是:若标识符未被定义则编译程序段1,否则编译程序段2。这种形式与第一种形式的作用相反。
3、条件编译的例子
我们有一个数据类型,在Windows平台中,应该使用long类型表示,而在其他平台应该使用float表示,这样往往需要对源程序作必要的修改,这就降低了程序的通用性。可以用以下的条件编译:
1 #ifdef WINDOWS 2 #define MYTYPE long 3 #else 4 #define MYTYPE float 5 #endif 6
如果在Windows上编译程序,则可以在程序的开始加上
1 #define WINDOWS
这样则编译下面的命令行:
#define MYTYPE long
如果在这组条件编译命令之前曾出现以下命令行:
1 #define WINDOWS 0
则预编译后程序中的MYTYPE都用float代替。
通常对于顶层的程序使用下面两条语句保证
底层程序中的条件编译的正常执行!
1 `ifndef GUARD_INTERFACE 2 `define GUARD_INTERFACE
来源:http://www.cnblogs.com/littleMa/p/5430795.html