当前位置:天才代写 > tutorial > C语言/C++ 教程 > C语言进修教程第九章-预处理惩罚(4)

C语言进修教程第九章-预处理惩罚(4)

2017-11-04 08:00 星期六 所属: C语言/C++ 教程 浏览:377

2. 第二种形式:
#ifndef 标识符
措施段1
#else
措施段2
#endif
与第一种形式的区别是将“ifdef”改为“ifndef”。它的成果是,假如标识符未被#define呼吁界说过则对措施段1举办编译, 不然对措施段2举办编译。这与第一种形式的成果正相反。

3. 第三种形式:
#if 常量表达式
措施段1
#else
措施段2
#endif
它的成果是,如常量表达式的值为真(非0),则对措施段1 举办编译,不然对措施段2举办编译。因此可以使措施在差异条件下,完成差异的成果
#define R 1
main(){
float c,r,s;
printf ("input a number: ");
scanf("%f",&c);
#if R
r=3.14159*c*c;
printf("area of round is: %f\n",r);
#else
s=c*c;
printf("area of square is: %f\n",s);
#endif
}
本例中回收了第三种形式的条件编译。在措施第一行宏界说中,界说R为1,因此在条件编译时,常量表达式的值为真, 故计较并输出圆面积。上面先容的条件编译虽然也可以用条件语句来实现。 可是用条件语句将会对整个源措施举办编译,生成的方针代码措施很长,而回收条件编译,则按照条件只编译个中的措施段1或措施段2, 生成的方针措施较短。假如条件选择的措施段很长, 回收条件编译的要领是十分须要的。

本章小结
1. 预处理惩罚成果是C语言特有的成果,它是在对源措施正式编译前由预处理惩罚措施完成的。措施员在措施顶用预处理惩罚呼吁来挪用这些成果。

2. 宏界说是用一个标识符来暗示一个字符串,这个字符串可以是常量、变量或表达式。在宏挪用中将用该字符串代换宏名。

3. 宏界说可以带有参数,宏挪用时是以实参代换形参。而不是“值传送”。

4. 为了制止宏代换时产生错误,宏界说中的字符串应加括号,字符串中呈现的形式参数双方也应加括号。

5. 文件包括是预处理惩罚的一个重要成果,它可用来把多个源文件毗连成一个源文件举办编译,功效将生成一个方针文件。

6. 条件编译答允只编译源措施中满意条件的措施段,使生成的方针措施较短,从而淘汰了内存的开销并提高了措施的效率。

7. 利用预处理惩罚成果便于措施的修改、阅读、移植和调试,也便于实现模块化措施设计。

 

    关键字:

天才代写-代写联系方式