全国计算机等级考试2C课程第10讲-预编译处理课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《全国计算机等级考试2C课程第10讲-预编译处理课件.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国 计算机等级考试 课程 10 预编 处理 课件
- 资源描述:
-
1、全国计算机等级考试 2C课程2023-5-2作者:张旭仟 版权所有 欢迎盗版2编译预处理命令的基本概念lANSI C规定,可以在源程序中加入一些“编译预处理命令”,以改进程序设计环境,提高编程效率。例如:l#define PI 3.14159l#include l虽然这些“编译预处理命令”也是由ANSI C统一规定的,但它们并非C语言的组成部分。含有这种“编译预处理命令”的源程序,只有在正式编译之前先对它们进行“预处理”后,才能被正常编译成“目标程序”。l语言提供的预处理命令主要有:宏定义命令、文件包含命令、条件编译命令。l为了与一般语句相区别,这些编译预处理命令”都以“”号开头。2023-5
2、-2作者:张旭仟 版权所有 欢迎盗版3不带参数的宏替换命令l不带参数的宏替换命令l一般形式:define 标识符 字符串l例如:define PI 3.1415926l其中“define”是宏定义命令,PI 称为“宏名”,“3.1415926”称为宏体。l作用是将程序中在该命令以后出现的所有的PI都用“3.1415926”代替。l在预编译时将宏名替换成字符串的过程称为“宏展开”。2023-5-2作者:张旭仟 版权所有 欢迎盗版4不带参数的宏替换命令l说明:(1)define命令、宏名、宏体之间必须用空格隔开;(2)由于宏定义不是C语言程序语句,行的末尾不需要加“;”号;如果加了分号则会作为宏体
3、的一部分被一起置换。(3)宏名习惯上一般用大写字母表示,以便与普通变量名区别。但这并非语法规定,即用小写字母并不属于语法错误;(4)程序中被加上双引号“”的宏名,将不能被替换,如:printf(“PI”);语句中的PI不会被替换为3.1415926;(5)适当使用宏名代替一个字符串,可以减少程序中重复书写某些复杂数据的工作量。2023-5-2作者:张旭仟 版权所有 欢迎盗版5不带参数的宏替换命令l例如:#include#define PI 3.1415926void main()float l,s,r,v;printf(input radius:);scanf(%f,&r);l=2.0*PI*
4、r;s=PI*r*r;v=4.0/3*PI*r*r*r;printf(l=%10.4fns=%10.4fnv=%10.4fn,l,s,v);运行情况如下:1=25.1328s=50.2655v=150.79662023-5-2作者:张旭仟 版权所有 欢迎盗版6不带参数的宏替换命令(6)宏定义是用宏名代替一个字符串,只作简单置换,并不对字符串(宏体)作正确性检查。(7)#define命令通常写在文件开头或函数之前。默认情况下,宏名的有效范围,是从宏定义命令之后开始,直到本源文件结束。(8)当然,也可以用#undef命令,提前终止宏定义的作用范围。如:#define G 9.8 _void mai
5、n()G的有效范围 _#undef G f1()2023-5-2作者:张旭仟 版权所有 欢迎盗版7不带参数的宏替换命令(9)在进行宏定义时,可以引用已定义的宏名,宏展开时将会层层置换。例如:#include#define R 3.0#define PI 3.1415926#define L 2*PI*R#define S PI*R*Rvoid main()printf(L=%fnS=%fn,L,S);编译预处理时:printf(“L=%fnS=%fn”,L,S);语句将被展开为printf(“L=%fnS=%fn”,2*3.1415926*3.0,3.1415926*3.0*3.0);2023
展开阅读全文