8.4.2 #elif命令

elif命令用于进行在多种编译条件下进行选择编译的情况,其含义与“else if”相同,形成一个阶梯状编译语句。使用#elif命令的一般形式如下。


if表达式0

语句段;

elif表达式1

语句段;

elif表达式2

语句段;

……

elif表达式n

语句段;

endif


其中,#elif命令后的常量表达式的值作为判断条件。从上到下依次判断表达式的值,如果表达式的值为真,则编译其后的程序代码段,从而不再对其后的#elif命令的表达式进行判断。如果表达式的值为假,则接着判断下一个#elif命令的表达式。使用#elif命令用于进行多种编译选择的程序示例如下。


include<stdio.h>//头文件

define SCORE 65//宏定义变量

void main()//主函数

{

if SCORE>=90//开始条件编译

printf(“You are very good!\n”);

elif SCORE>=80

printf(“You are good!\n”);

elif SCORE>=60

printf(“You passed the exam!\n”);

else

printf(“You haven't passed the exam!\n”);

endif//条件编译结束

}


该程序可以在KeilµVision3集成开发环境中运行,其结果如下所示。


You passed the exam!


本例中,先宏定义分数SCORE为65,然后在主程序中,通过#elif命令进行多种条件选择编译,从而输出该分数所属的等级分类。

在C51语言中,#if命令与#elif命令可以一直嵌套到实现规定的权限,其中#endif命令或#else命令与最近的#if命令或#elif命令相关联。