- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第八章编译预处理基础C语言程序设计重庆大学C程序设计技术第一章C程序设计初步第二章C程序的基本控制结构第三章函数第四章数组和字符串第五章C程序文件处理基础第六章指针第七章结构体和联合体数据类型第八章编译预处理基础第九章枚举类型和位运算第八章编译预处理基础编译预处理:C编译系统在C源程序编译之前,进行的一些预加工,然后再将处理的结果和源程序一起进行编译,得到目标代码。编译预处理命令都是以“#”号开始8.1?宏定义预处理命令及其简单应用8.2文件包含预处理命令及其简单应用8.3条件编译预处理命令及其简单应用8.1?宏定义预处理命令及其简单应用8.1.1不带参数的宏定义#define8.1.2带参数的宏定义#define8.1.1不带参数的宏定义宏定义格式:#define宏标识符字符串宏调用格式:宏标识符宏调用功能:在宏定义作用范围内,所有宏标识符用指定字符串替换。宏标识符也称为宏名或符号常量,习惯使用大写字母书写。例8.1宏定义预处理示例。#includestdio.h#definePI3.1415926#defineR2.0voidmain(){ doublecircum(); doublearea(); circum(); area(); printf(Circum=%f\n,circum()); printf(Area=%f\n,area());}doublecircum(){ return2.0*PI*R;}doublearea(){ returnPI*R*R;}doublecircum(){return2.0*3.1415926*2.0;} doublearea(){return3.1415926*2.0*2.0;}使用宏定义应注意:1).宏定义中字符串:字符串常量、表达式、语句、已定义的其它宏。例如宏定义: #definePI 3.1415926 #define R 5.0 #defineCirc retrun(2.0*PI*R);2).宏定义撤消:重新定义只含宏标识符的#define语句来撤消宏定义。例如:#defineR//撤消对R的宏定义3).源程序代码出现的宏名,不是都进行宏调用替换。例如:#defineloc12345 intlocal; 不替换成int12345al;#definePI3.14printf(“ThevalueofPIis:%f\n”,PI);不替换成printf(“Thevalueof3.14is:%f\n”,3.14);4).宏调用仅仅是一个替换例8.1宏调用替换问题的理解示例。#includestdio.h#defineN2#defineMN+2#defineMN2*Mvoidmain(){ intx=MN; printf(x=%d\n,x); }结果:x=68.1.1?不带参数的宏定义带参数宏定义格式:#define宏标识符(形参表)表达式字符串 带参数宏调用格式:宏标识符(实参表) 带参数宏调用功能:在宏定义范围内,宏识符用指定的表达式字符串替换,然后用宏调用中的实际参数替换表达式字符串中的形式参数。例8.2代参数宏定义使用示例。例8.3宏调用替换问题的理解示例。#includestdio.h#definePI3.145926#defineS(r)PI*r*rvoidmain(){ doublea,b,area1,area2; a=3.3; b=3.2; area1=S(a); area2=S(a+b); printf(area1=%f\narea2=%f\n,area1,area2);}程序运行结果为:area1=34.259134area2=24.141556#includestdio.h#defineMin(x,y)(x)(y)?(x):(y)voidmain(){ inta=1,b=2,c=3,d=4,
您可能关注的文档
- 重庆大学《C语言程序设计》课件-第1章 C程序设计初步.ppt
- 重庆大学《C语言程序设计》课件-第2章 C程序的基本控制结构.ppt
- 重庆大学《C语言程序设计》课件-第6章 指针与函数.ppt
- 05SJ807 民用建筑工程设计常见问题分析及图示(建筑专业).docx
- 02J102-2 框架结构填充小型空心砌块墙体建筑构造.docx
- 05SJ918-8 传统特色小城镇住宅(浙江嘉兴、台州地区).docx
- 06J908-6 太阳能热水器选用与安装.docx
- 11J934-1 《中小学校设计规范》图示.docx
- 13J913-1公共厨房建筑设计与构造.docx
- 06J925-2 压型钢板、夹芯板屋面及墙体建筑构造(二).docx
最近下载
- 大学文科《高等数学》(全册教案).pdf VIP
- 神奇的纳米机器人在医学领域.pptx VIP
- 酒店室内装修施工组织计划.doc
- 初级消防设施操作员(监控初级)真题及答案解析一.doc
- 1956-1977象棋爱好者必选中国象棋棋谱.doc VIP
- Haier海尔滚筒全自动洗衣机 XQG60-1281 使用说明书.PDF VIP
- 提高住院患者抗菌药物治疗前病原学送检率专项培训考核试题.pdf VIP
- SAE-ARP4754A民用飞机和系统开发指南翻译文稿.pdf
- 公安院校公安专业本专科招生体检表(2022年西藏报考公安院校公安专业招生).doc VIP
- 车门外板冲压模具三维造型与工艺参数优化设计.doc VIP
文档评论(0)