版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第九章预处理命令§7.10预处理命令为提高编程效率,改善程序设计环境,ANSIC统一规定了在C源程序中加入一些“预处理命令”。但它们不是C语言的一部分。为与一般C语句相区别,这些命令以符号“#”开头C提供的预处理功能宏定义#define#undef文件包含#include条件编译#ifdef#else#endif一宏定义1不带参数的宏定义的一般形式#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=%10.4f\ns=%10.4f\nv=%10.4f\n”,l,s,v);}被3.1415926代替功能:将程序中出现的所有标识符用字符串替换。标识符也称宏名。2带参数的宏定义的一般形式#define标识符(参数表)字符串功能:将程序中出现的所有标识符用字符串替换。字符串中包含在括弧中所指定的参数。标识符也称宏名。例1:#defineS(a,b)a*barea=S(3,2);area=3*2;等效于实参形参例2:#definePI3.1415926#defineS(r)PI*r*rarea=S(a+b);area=PI*a+b*a+b;等效于例3:#definePI3.1415926#defineS(r)PI*(r)*(r)area=S(a+b);area=PI*(a+b)*(a+b);等效于带参数的宏的说明:(只增加了第10条)(1)宏名一般用大写(2)提高程序的通用性,便于修改(3)宏定义在预处理时不作正确性检查(4)宏定义不是C语句,所以不要加分号,否则作为宏定义的一部分(5)通常定义在文件的开始地方,保证本文件可用(6)可以用#undef命令终止宏定义的作用域(7)可以引用已定义的宏名(8)程序中用双括号括起来的字符串内的字符不被替换(9)宏定义只作字符替换,不分配内存空间(10)标识符与参数表之间不能有空格例:#definePI3.1415926#defineCIRCLE(R,L,S,V)L=2*PI*R;S=PI*R*R;V=4.0/3.0*PI*R*R*Rmain(){floatr,l,s,v;scanf(“%f”,&r);CIRCLE(r,l,s,v);printf(“r=%6.2f,l=%6.2f,s=%6.2f,v=%6.2f\n”,r,l,s,v);}经过预编译后main(){floatr,l,s,v;scanf(“%f”,&r);l=2*PI*r;s=PI*r*r;v=4.0/3.0*PI*r*r*r;printf(“r=%6.2f,l=%6.2f,s=%6.2f,v=%6.2f\n”,r,l,s,v);}注意宏展开时,作为参数的括号不必展开例:#defineIEE(x,y)x+y展开宏时:printf(……,IEE(3,4)/IEE(5,6));应该是:3+4/5+6而不是:(3+4)/(5+6)二文件包含文件包含定义的一般形式#include“文件名”功能:将另外一个源文件的全部内容包含进来,即将另外的文件包含到本文件之中。或#include<文件名>f1.c#include<f2.c>Af2.cB编译前编译后f1.cAB*.h或*.c三条件编译形式1:#ifdef标识符程序段1#else程序段2#endif可以没有条件编译:有时需要源程序中的部分内容只有在满足某些条件下时才进行编译,也就是对一部分内容指定编译的条件。好处:减少被编译的语句和程序目标代码,节省运行时间。功能:如果已经定义“标识符”,则编译程序段1,否则编译程序段2形式2:#ifndef标识符程序段1#else程序段2#endif可以没有功能:如果没有定义“标识符”,则编译程序段1,否则
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 变异株传播的公共卫生应急响应流程优化方案实施进展报告解读
- 受试者经济因素与脱落事件的干预策略
- 发展中国家伦理审查资源优化配置策略
- 双相障碍分级诊疗管理方案
- 双病管理中的氧化应激干预策略
- 双器官纤维化(肝-肾)协同治疗策略探讨
- 原代静息T细胞中Cas13的靶向优化策略
- 卵巢癌耐药后手术与肿瘤血管生成的干预策略
- 2025江西吉安遂川县城控人力资源管理有限公司招聘园林绿化工考前自测高频考点模拟试题附答案
- 2025浙江宁波市住房和城乡建设局局属事业单位招聘11人备考题库附答案
- 数学好玩其二:看图找关系(折线统计图与行程问题)(学生版+解析)-2024-2025学年六年级数学下册培优精练(北师大版)
- 质量扣款协议书范本
- 股东大会会议记录纪要
- 提升初中教师数字素养的策略与路径
- (新版)中国心理卫生协会心理咨询师考试复习题库(浓缩400题)
- 睡眠监测进修汇报
- 重庆市机动车维修工时定额标准
- 《围手术期管理课件》
- 国开本科《人文英语3》期末机考总题库及答案
- 第八章排泄护理排尿护理学基础讲解
- 晋陕鄂尔多斯盆地柳林区块煤层气资源开发利用与矿区生态保护修复方案
评论
0/150
提交评论