C语言培训教材课件第6章.ppt

C语言培训教材课件第6章.ppt

ID:51052019

大小:439.47 KB

页数:20页

时间:2020-03-18

C语言培训教材课件第6章.ppt_第1页
C语言培训教材课件第6章.ppt_第2页
C语言培训教材课件第6章.ppt_第3页
C语言培训教材课件第6章.ppt_第4页
C语言培训教材课件第6章.ppt_第5页
资源描述:

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

1、第6章编译预处理1主要内容编译预处理多文件程序的调试方法条件编译2005年3月2源文件*.c运行文件*.exe编译编译编译目标文件*.obj连接编译连接连接编译预处理编译编译预处理包括:宏定义文件包含条件编译6.1编译预处理2005年3月36.1编译预处理(续)源文件*.c运行文件*.exe目标文件*.obj编译连接main(){floatr,s,c;scanf(“%f”,&r);s=r*r*3.14;c=2*r*3.14;printf(“s=%f,c=%f”,s,c);}如何修改圆周率2005年3月4#def

2、ine宏名字符串宏定义的功能:在进行编译前,用字符串原样替换程序中的宏名。这个替换过程称为“宏替换”或“宏展开”,字符串也称为替换文本。命令的一般格式:6.1.1不带参数的宏定义6.1编译预处理(续)2005年3月56.1编译预处理(续)例如:#definePI3.14main(){floatr,s,c;scanf(“%f”,&r);s=r*r*PI;c=2*r*PI;printf(“s=%f,c=%f”,s,c);}替换3.143.14编译2005年3月66.1编译预处理(续)②为了增加程序的可读性,建议宏名

3、用大写字母,其他的标识符用小写字母。③双引号中有与宏名相同的字符串不进行替换。④已经定义的宏名可以被后定义的宏名引用。在预处理时将层层进行替换。说明:①宏定义的作用域是从定义处开始到源文件结束,但根据需要可用undef命令终止其作用域。形式为:#undef宏名2005年3月7【例6.1】不带参数的宏定义。源程序:#definePI3.14#defineSPI*r*r#defineV4*S*r/3main(){floatr;printf("Inputr:");scanf("%f",&r);printf("S=

4、%.2fV=%.2f",S,V);}编译预处理后的程序:main(){floatr;printf("Inputr:");scanf("%f",&r);printf("S=%.2fV=%.2f",3.14*r*r,4*3.14*r*r*r/3);}SVSV进入编译2005年3月8命令的一般形式6.1.2带参数的宏定义#define宏名(形参表)字符串功能:在编译预处理时,把源程序中所有带参数的宏名用宏定义中的字符串替换,并且用宏名后圆括号中的实参替换字符串中的形参。例如:#defineMAX(X,Y)

5、((X)>(Y)?(X):(Y))6.1编译预处理(续)2005年3月96.1编译预处理(续)【例6.30】带参数的宏定义。#defineMAX(x,y)((x)>(y)?(x):(y))main(){…printf("%d",a,b,MAX(a,b));printf("%d",MAX(a+m,b+n));}分两次替换:①将宏名MAX(a,b)替换成字符串((x)>(y)?(x):(y))。②用实参a替换形参x,实参b替换形参y。程序中的两个printf语句被展开为:printf("%d",((a)

6、>(b)?(a):(b)));printf("%d",((a+m)>(b+n)?(a+m):(b+n)));2005年3月106.1编译预处理(续)【例6.3】分析下面程序运行后的输出结果。#defineMA(x)x*(x-1)main(){inta=1,b=2;printf("%d",MA(1+a+b));}分两次替换:①MA(1+a+b)用x*(x-1)替换。②用1+a+b替换x。printf语句被展开为:printf("%d",1+a+b*(1+a+b-1));特别注意:由于替换文本中的x没有

7、用括号括起,因此,1+a+b也不能用括号括起。程序输出结果:82005年3月116.1编译预处理(续)1.命令的一般形式格式1:#include<文件名>格式2:#include"文件名"6.1.3文件包含文件包含是将指定的某个源文件的内容全部包含到当前文件中。用include命令实现。用格式1,预处理程序仅在TCINCLUDE目录下查找指定文件。用格式2,预处理程序首先在当前目录中查找指定文件,若找不到再到TCINCLUDE目录中查找。2005年3月126.1编译预处理(续)例如:调用sin(x)函数

8、时,要在程序的开头使用如下命令:#include在预处理时,用math.h文件内容替换#include命令行。2.功能在预处理时,将include命令后指定文件的内容替换该命令行。2005年3月136.2多文件程序的调试方法操作步骤如下:①在TC环境下建立一个工程文件(扩展名为prj),设文件名为test.prj,文件内容如下:file1.cfile2.

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

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

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