C语言程序设计教程第版.pptx
《C语言程序设计教程第版.pptx》由会员分享,可在线阅读,更多相关《C语言程序设计教程第版.pptx(27页珍藏版)》请在咨信网上搜索。
1、概概述述一、编译预处理的概念一、编译预处理的概念 C语言允许在程序中使用几种特殊的命令语言允许在程序中使用几种特殊的命令(它们不是一般的(它们不是一般的C语句),在语句),在C编译系统对编译系统对程序进行通常的编译之前,先对程序中这些程序进行通常的编译之前,先对程序中这些特殊命令进行特殊命令进行“预处理预处理”,然后将预处理的,然后将预处理的结果和源程序一起再进行通常的编译处理,结果和源程序一起再进行通常的编译处理,以得到目标代码。以得到目标代码。二、主要预处理功能二、主要预处理功能宏定义宏定义;文件包含;文件包含;条件编译条件编译10.1 10.1 文件包含文件包含 “文件包含文件包含“:是
2、指一个源文件可以将另外一是指一个源文件可以将另外一个个源文件的全部内容包含进来。源文件的全部内容包含进来。C语言提供语言提供#include命令来实现命令来实现“文件包文件包含含”的操作,其一般形式为:的操作,其一般形式为:#include“文件名”#include 或或作用:作用:使编译系统把指定的被包含文件嵌入使编译系统把指定的被包含文件嵌入到带有到带有#include的源文件中。的源文件中。“文件包含文件包含”示意图示意图file1.cfile2.cfile1.c包含包含#include“file2.c”BABA(a)(b)(c)假如假如file1.cfile1.c文件中的内容如下:文件
3、中的内容如下:int a,b,c;int a,b,c;float m,n,p;float m,n,p;char r,s,t;char r,s,t;file2.c file2.c文件的内容如下:文件的内容如下:#includefile1.cincludefile1.cmain()main()经过编译预处理后,经过编译预处理后,file2.cfile2.c文件的内容为:文件的内容为:int a,b,c;int a,b,c;float m,n,p;float m,n,p;char r,s,t;char r,s,t;main()main()包含文件的查找方法:#include“文件名文件名”先在当前工
4、作目录中去查找,若找不到再到指定的标准目录中去查找。如:对Turbo C编译系统,先在用户目录下 查找,然后在TCinclude文件夹中查找。#include 直接到系统指定的标准目录中去查找。如:对Turbo C编译系统,直接在TCinclude 文件夹中查找。在使用编译预处理在使用编译预处理#includeinclude语句时,需要注意的语句时,需要注意的几个问题如下:几个问题如下:(1)(1)当当#includeinclude语语句句指指定定的的文文件件中中的的内内容容发发生生改改变变时时,包包含含文文件件的的所所有有源源文文件件都都应应该该注注意意重重新新进进行行编编译等处理。译等处理
5、。(2)(2)文文件件包包括括可可以以嵌嵌套套使使用用,即即被被包包括括的的文文件件中中还还可以使用可以使用#includeinclude语句。语句。(3)(3)由由#includeinclude语语句句指指定定文文件件中中可可以以包包含含任任何何语语言言成成分分,通通常常将将经经常常使使用用的的、具具有有公公共共性性质质的的符符号号常常量量、带带参参数数的的宏宏定定义义以以及及外外部部变变量量等等集集中中起起来来放放在在这种文件中,这样可以避免一些重复操作。这种文件中,这样可以避免一些重复操作。(4)被包含的文件通常是源文件,而不是目标文件被包含的文件通常是源文件,而不是目标文件。根据经验的
6、总结,以下内容放在头文件中比较合根据经验的总结,以下内容放在头文件中比较合适。需要说明的是适。需要说明的是C语言对此没有强行的规定。语言对此没有强行的规定。包含指令(嵌套),如:包含指令(嵌套),如:#include函数声明,如:函数声明,如:externfloatfun(floatx);类型说明,如:类型说明,如:enumboolfalse,true常量定义,如:常量定义,如:constfloatpi=3.14159;数据声明,如:数据声明,如:externintm;宏定义,如:宏定义,如:#definePI3.1415926;10.2.1无参宏定义无参宏定义作用:作用:用标识符来代表一个字
7、符串。用标识符来代表一个字符串。10.2 10.2 宏定义宏定义宏名宏名宏内容宏内容无分号无分号宏宏:是对正文进行代入或嵌入的一种功能。即从是对正文进行代入或嵌入的一种功能。即从一字符流中取出某个字符串去代替源程序里一字符流中取出某个字符串去代替源程序里的标识符。的标识符。1.一般形式一般形式:#define define 标识符标识符 常量常量引例引例:#definePI3.1415926main()floatl,s,r,v;printf(“inputradius:”);scanf(“%f”,&r);l=2.0*PI*r;s=PI*r*r;v=3.0/4*PI*r*r*r;printf(“l
8、=%10.4fns=%10.4fnv=%10.4fn”,l,s,v);其中其中#definePI3.1415926作用是指定标识符作用是指定标识符PI来代表来代表“3.1415926”宏定义允许嵌套,在宏定义的字符串中可宏定义允许嵌套,在宏定义的字符串中可以使用已经定义的宏名。在宏展开中由预处以使用已经定义的宏名。在宏展开中由预处理程序层层代换。理程序层层代换。例如:例如:#defineN2#defineMN+1#defineNUM(M+1)*M/2替换的过程为;替换的过程为;NUM=(M+1)*M/2;而而M=M+1,也就是说,也就是说NUM=(N+1+1)*N+1/2。宏宏名用做代替一个字
9、符串,不作语法检查;名用做代替一个字符串,不作语法检查;宏定义的字符串不能以宏定义的字符串不能以“;”结尾,字符串结束后结尾,字符串结束后一一定要换行定要换行;C语言允许宏定义出现在程序中函数外面的任何语言允许宏定义出现在程序中函数外面的任何位置,但一般情况下它总写在文件的开头。位置,但一般情况下它总写在文件的开头。说明:说明:宏名一般习惯用大写字母,以便与变量名相区别;宏名一般习惯用大写字母,以便与变量名相区别;在进行宏定义时,可以引用已定义的宏名;在进行宏定义时,可以引用已定义的宏名;(6)宏名的前后应有空格,以便准确地辨认宏名,如果宏名的前后应有空格,以便准确地辨认宏名,如果没有留空格,
10、则程序运行的结果会出错。没有留空格,则程序运行的结果会出错。说明:说明:宏替换由编译程序预先进行;宏替换由编译程序预先进行;宏替换范围是宏替换范围是除字符串以外除字符串以外的所有宏名字;的所有宏名字;若替换后文本串中仍含有宏名字,将再次进若替换后文本串中仍含有宏名字,将再次进行替换,直到程序中不含宏名字为止。行替换,直到程序中不含宏名字为止。#define PI 3.1415926#define R 3.0#define L 2*PI*R#define S PI*R*R宏替换宏替换(宏展开宏展开):用宏内容(字符串)原样代:用宏内容(字符串)原样代换程序中的所有宏名字的过程。换程序中的所有宏名
11、字的过程。第一次替换:printf(l=%f ns=%fn,2*PI*R,PI*R*R);二:printf(l=%f ns=%fn,2*3.1415926*3.0,3.1415926*3.0*3.0);main()printf(l=%f ns=%fn,L,S);10.2.2有有参宏定义参宏定义一般形式一般形式:#define define 宏名(宏形参数表)宏名(宏形参数表)字符串字符串作用:作用:宏替换时以实参数替代形参数。宏替换时以实参数替代形参数。#define PI 3.1415926#define S(r)PI*r*rmain()float r1=3.6,area;area=S(r1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 教程
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。