C++语言程序设计

由于在宏定义中， R定义为1，因此在条件编译时，常量表达式的值为真，故将计算并输出圆面积。事实上，上面介绍的条件编译完全可以用if-else条件语句来实现。 但是用条件语句将会对整个源程序进行编译，生成的目标代码程序比较长，而采用条件编译，则根据条件，只编译其中的程序段1或程序段2，生成的目标程序较短。如果条件选择的程序段很长，采用条件编译的方法无疑是有用的。
仅仅有#if和#else指令只能进行两种情况的判断， C++还提供了#elif指令，其意思即为"else if"，它与#if和#else指令一起就构成了if-else-if嵌套语句，用于多种编译选择的情况。其格式一般形式为：
#if 常量表达式1
程序段1
#elif 常量表达式2
程序段2
#elif 常量表达式3
程序段3
…
#else
程序段n+1
#endif
下面举个例子说明#elif指令的用法：

| 例9-11

#include<iostream.h>
#define A -10
void main( )
{
#if A>0
cout<< "a>0"<<endl;
#elif A<0
cout<<"a<0"<<endl;
#else
out<< "a= =0"<<end1;
#endif
}

| 图9-8