




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章预处理命令,9.1编译预处理,“编译预处理”是C与其它高级语言的一个重要区别。,宏定义;,文件包含;,条件编译;,1.宏定义,1)不带参数的宏定义,用指定的标识符(宏名)代表一个常量或字符串:,#define标识符常量/字符串,它们是:,例9.1求正圆锥体的底周长、底面积和它的体积。,#definePI3.1415926main()floatl,s,r,v;scanf(“%f”,宏名PI用大写,行末无分号,宏名的有效范围为该宏定义命令之后至本源文件结束。,通常,宏定义命令一般写在文件开头或函数之前作为该文件的一部分。,可以用#undef命令终止宏定义的作用域。,如:,#defineG9.8main(),进行宏定义时,可以引用已定义的宏名,层层置换。,对程序中用双引号括起来的字符串,即使与宏名相同也不会被置换。,#undefGfloatf(),2带参数的宏定义,语句形式:,#define宏名(形参表)表达式,例9.3#definePI3.1415926#defineS(r)PIrrmain()floata,area;a=3.6;area=S(a);printf(“r=%fnarea=%fn”,a,area);,area=3.1415926aa,但不会置换a为3.6,对带参数的宏定义的置换展开是用“表达式”对等的置换“形参表”中的参数。上例中的“”是不会被置换的。,若将area=S(a)改写成area=S(a+2),,将置换为:,area=PIa+2a+2,,而不是:area=PI(a+2)(a+2)。,若要达到后者之目的,则应将宏定义命令改写为:#defineS(r)PI(r)(r),宏名与括号之间不得有空格,因为宏名与表达式之间的分隔符为空格。,如果用#defineS(r)PIrr的话,则被置换为area=(r)PIrr(a),宏展开并不进行值的传递,即不求表达式的值,也没有“返回值”的概念。,宏不存在类型问题,宏名无类型,参数也无类型,表达式可以是任何类型。,定义带参数的宏,可以实现一些简单的函数功能。,如:#defineMAX(x,y)(x)(y)?(x):(y)main()inta,b,c,t;t=MAX(a+b,c+d);,注:这里的t展开后为t=(a+b)(c+d)?(a+b):(c+d),如果第一行写成:#defineMAX(x,y)xy?x:y,则这里的t展开后为t=a+bc+d?a+b:c+d,因为置换展开是用“表达式”对等的置换“形参表”中的参数,9.2“文件包含”处理,在C中可以用#include命令实现一个文件包含另一个文件。,语句形式:,#include“文件名”,例:#include“stdio.h”#defineN2#defineMN+1#defineNUM(M+1)M/2main()inti,n=1;for(i=1;i=a,运行结果:CLANGUAGE,例2:#defineN2#defineMN+1#defineNUM2M+1main()inti;for(i=1;i(y)?(x):(y)main()inta=5,b=2,c=3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏南京建邺区五校联考2026届化学九年级第一学期期中达标检测模拟试题含解析
- 黑龙江省哈尔滨市顺迈2026届九年级化学第一学期期中质量检测模拟试题含解析
- 四川省巴中市2025-2026学年高三上学期9月零诊考试数学试题(含答案)
- 山东省临沂蒙阴县联考2026届九年级化学第一学期期中调研模拟试题含解析
- 2025年新训政府专职消防员职业技能鉴定理论参考试题库(含答案)
- 河南省南阳市内乡县2026届化学九上期中监测模拟试题含解析
- 福建省龙岩市永定区2026届化学九年级第一学期期中经典模拟试题含解析
- 智能制造行业技术工人派遣合同及技能提升协议
- 离婚抚养权变更及子女财产继承协议范本
- 离婚协议书范本:保障离婚后子女教育权益
- GB/T 41972-2022铸铁件铸造缺陷分类及命名
- YY/T 0471.3-2004接触性创面敷料试验方法 第3部分:阻水性
- GB/T 3871.9-2006农业拖拉机试验规程第9部分:牵引功率试验
- PEP小学英语五年级上册第四单元全国优质课赛课一等奖《思维导图在小学英语复习课的应用》精品课件
- 新闻传播中的媒介素养课件
- 小军师面试万能绝杀模板-组织管理
- 超疏水材料课件
- 中医刮痧法诊疗操作评分标准
- 腧穴定位法课件
- 社会体育导论PTPPT课件讲义
- 学校体育学(第三版)ppt全套教学课件
评论
0/150
提交评论