c语言课件第八章.ppt

c语言课件第八章.ppt

ID:52472089

大小:386.37 KB

页数:21页

时间:2020-04-08

c语言课件第八章.ppt_第1页
c语言课件第八章.ppt_第2页
c语言课件第八章.ppt_第3页
c语言课件第八章.ppt_第4页
c语言课件第八章.ppt_第5页
资源描述:

《c语言课件第八章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第八章C语言程序设计编译预处理本章主要内容1.掌握无参宏定义和带参宏定义的方法2.掌握文件包含命令的形式和文件包含的实现过程3.了解条件编译命令C的源程序预处理编译目标程序(*.C)_______________(*.OBJ)编译系统中有:预处理程序编译程序宏替换#defineN20文件包含#include条件编译if(...)C中的预处理命令分类宏定义有两种类型:字符串替换和带参数的宏替换1字符串宏替换功能:在预处理时,将程序中宏定义之后出现的所有的宏名,用宏替换体代替。宏替换名宏替换体例如:#definePI3.14159格式:#defin

2、e标识符 字符串C的编译程序调用预处理程序检查有否宏名,若有,用宏替换体将其替换,完成之后,将替换后的源程序交该编译程序。8.1宏定义用途:常用的符号常数PI=3.14159自然对数的底:2.71828数组的长度#defineN10/*编译之前用10替换所有的N*/…….inta[N]说明:通常放在程序开头,不加分号是代替,不是赋值(不作语法检查)可将多个语句或表达式定义为一个宏替换区别变量和关键字,习惯用大写#defineR3.0#definePI3.145926#defineL2.0*PI*R#defineSPI*R*R双引号中的不替换有效范围,从定义开始到

3、程序结尾例:#definePI3.14159main(){printf(“PI=%f”,PI);}结果:PI=3.14159main(){printf(“PI=%s”,”PI”);}可以嵌套,后定义的宏可以包含先定义的宏名结果:PI=PI2带参数的宏定义带参数的宏不仅能进行字符串代替,而且还进行参数代换。格式:#define宏名(参数表)表达式功能:带参数的宏将一个带形参的表达式定义为一个带参数的宏名,预处理程序对程序中所有带实参表的宏名进行宏展开替换,用表达式代替宏名,用参数表中的实参代替表达式中对应的形参。例:#defineS(a,b)a*b程序中S

4、(3,2)3*2用途:用带参数的宏可以代表一些简短的表达式,提高程序执行的效率。*宏定义可以嵌套*对常用的格式输入输出函数printf可以进行宏定义,使程序简化*宏名与参数的圆括号之间不能有空格s(a,b)说明:*宏定义命令要求在一行内写完,如换行,用“”表示下一行继续。*对于宏定义的形参要根据需要加上圆括号,以免发生运算错误[例1]使用有参宏替换求园的面积。#definePI3.1415926#defineS(r)PI*r*rmain(){floata=3.6,area;area=S(a);printf(“r=%farea=%f”,a,area);

5、}[例2]求下列语句的循环次数。#include“stdio.h”#defineN2#defineMN+1#defineNUM(M+1)*M/2main(){inti,n=0;for(i=1;i<=NUM;i++){n++;printf(“%d”,n);}}8函数要求形参,实参有类型(相同)宏的形参,实参不要求类型,仅是符号函数需事先计算实参表达式的值,再代入形参宏展开中不求表达式的值,仅替换,没有值传递函数是在运行时处理宏是在编译之前进行带参数的宏与函数的区别函数调用影响运行时间,源程序无变化宏展开影响编译时间,通常使源程序加长函数调用有一个返回值宏可以有多个

6、结果例:求最大值。(答案中用U代表空格)#include#defineMAX(x,y)___A___main(){floata,b,c,d;scanf("%f%f",___B___);c=MAX(a,b);d=MAX(3+a,4*b);printf("c=%f,d=%f.",c,d);}A:x>y?x:yB:&a,&b文件包含是指一个程序文件将另一个指定文件的全部内容包含进来。格式:#include<文件名>或:#include“文件名”8.2文件包含功能:用指定文件的全部内容代换该预处理行,C程序通过#include预处理,把一个指定的文

7、件的内容嵌入。只能包含ASCII文本文件。<>与“”的区别:<>在TC标准目录下找指定文件“”在用户当前目录下找指定文件,如用户当前目录下没有,再到TC标准目录下找。说明只包含源文件,不包含可执行文件和目标文件。可以嵌套例如:file1.c需包含file2.c,file2.c包含file3.c,在file1中,用两次#include#include,必须将file3.h放在前面一个#include只能包含一个文件用途将符号常量,带参数的宏及构造类型的变量等定义在一个独立的文件中,为其他文件共享。程序员可将工作中积累的有价值的符

8、号,带参数的宏定义,或一

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。