在编译的时候,如果我们可以选择某条语句或某组语句进行翻译或者忽略,常常会显得很方便。条件编译(conditional compilatioin)就是用于实现这个目的。
#if constant-expression
statements
#endif
其中,constant-expression(常量表达式)由预处理进行求值。如果它的值是非零值(真),那么statements部分就正常编译,否则就不编译。
条件编译的另一个用途是在编译的时候选择不同的代码部分。用法如下:
#if constant-expression
statements
#elif constant-expression
other statements
#else
other statements
#endif
#elif子句出现的次数可以不限,每个constant-expression只有当前所有常量表达式的值都为假时才会编译,即其他为定义0,想要编译的语句把其constant-expression定义为1即可。
参考资料:
Reek K A, 徐波. C 和指针[M]. 人民邮电出版社, 2008.