江苏大学c语言课件第八章.ppt

江苏大学c语言课件第八章.ppt

ID:61999467

大小:315.50 KB

页数:29页

时间:2021-04-10

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

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

1、预处理程序是一个正文处理程序,属于C语言编译程序的一部分。预处理是C语言的一个独特的优点。易开发、阅读、修改、移植C编译预处理程序是在编译第一遍扫描时就处理C源程序文件中使用的几种特殊命令行(#开头)。第八章编译预处理不带参数的宏定义带参数的宏定义宏定义#define“文件包含”处理#include条件编译#ifdef为了与C语句相区别,这些命令的第一个字符必须是#一、宏定义宏定义:把具有某种含义的标识符与常量、关键字、语句或表达式联系起来。不带参数的宏:它的一般形式为:#define标识符字符串如:#definePI3.1415926此处

2、PI为宏名预编译时将宏名换成字符串称为“宏展开”1.宏名即标识符一般大写。说明:2.它不是c语言,行末不加分号,否则连分号一起换。3.宏定义应写在文件开头,函数前,使其在整个文件有效,对它不作语法检查。用#undef可终止宏定义。5.定义宏时可引用已定义的宏名。6.宏替换只作形式的替换,文字文本原样代入。例1#defineG9.8main(){……}#undefGf1()……例2:#defineR3.0#definePI3.1415#defineL2*PI*Rmain(){printf(“L=%f”,L);}#definePI3.141

3、592636#defineMESG“Thisisastring”用标识符替换一个常量;该标识符称“替换常量”替换一个语句、函数调用或运算表达式,该标识符称为“宏”#definePRNSprintf(“resultisTRUE!”)#definePRNSprintf(“%d”,k)例3:例4:-带参数的宏:它的一般形式为:#define宏名(参数表)字符串例5:area=S(a+b);展开成:area=PI*a+b*a+b;故应改为:#defineS(r)PI*(r)*(r)如:#defineS(r)PI*r*r说明:定义宏时,宏名与

4、带参数的括弧间不能加空格,否则作无参数处理.如:#defineS(r)PI*r*r则:area=S(a);展开为:area=(r)PI*r*r(a)例6:#defineMULT(x)((x)*(x))inta=5,y;y=MULT(a+1);展开成:y=((a+1)*(a+1))例7:#defineMULT(x)(x*x)inta=5,y;y=MULT(a+1);展开成:y=(a+1*a+1)注意:宏名和参数无类型宏展开时不求参数值字符串可以是任意类型#includemain(){inti=1;while(i<=10)pr

5、intf(“%d”,square(i++));}intsquare(intn){return(n*n);}结果:149162536496481100#include#definesquare(n)n*nmain(){inti=1,s;while(i<=10){s=square(i++);printf(“%d”,s);}}结果:19254981例8:分析下列两个程序的运行结果例9:#defineMAX(a,b,c)((a)>(b)?((a)>(c)?(a):(c)):((b)>(c)?(b):(c)))main(){

6、intx,y,z;x=1;y=2;z=3;printf(“%d”,MAX(x,y,z));printf(“%d”,MAX(x+y,y,y+x));printf(“%d”,MAX(x,y+z,z));结果:335例10:以下宏定义:#defineX5#defineYX+1#defineZY*X/2则执行以下printf语句后,输出结果是:inta;a=Y;printf(“%d”,Z);printf(“%d”,--a);A)7B)12C)12D)155655A例11:若有以下宏定义:#defineN2#defineY(n)((N

7、+1)*n)则执行语句Z=2*(N+Y(5));后的结果为:A)语句有错误B)Z=34C)Z=70D)Z无定值B例12:下面程序的运行结果为:#defineWIDTH80#defineLENGTHWIDTH+40v=LENGTH*20;则v的值为:880定义:二、“文件包含”处理一般形式:#include“文件名”或#include<文件名>指一个源文件可以把另一源文件的全部内容包含进来,即将另外的文件包含到本文件中。说明:1)一个include命令只能指定一个被包含文件,如果要包含n个文件,要用n个include命令。2)如果文件1包含文

8、件2,而文件2中要用到文件3的内容,则可在文件1中用两个include命令分别包含文件2和文件3,而且文件3应出现在文件2之前,即在file1.c中定义:#inculde"fil

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

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

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