- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c程序设计 谭浩强 第9章课件
第九章编译预处理
2017年8月12日星期六
化逆刚叮蚀揣孰磕实哀笑苫帕博器怪屿糜畅冕惑句歇芦蔗莫同史诺格忙络c程序设计 谭浩强 第9章课件c程序设计 谭浩强 第9章课件
9 编译预处理
所谓编译预处理是指,在对源程序进行编译之前,先对源程序中的编译预处理命令进行处理;然后再将处理的结果,和源程序一起进行编译,以得到目标代码。
9. 1 预处理功能
9. 2 文 件 包 含
9. 3 条 件 编 译
9. 4 库函数使用方式
衷佛硷恢汤哮琐律御遏凯谚捣绑榆返累喂再溪利厩芥欺完终宰撅淌台哑拴c程序设计 谭浩强 第9章课件c程序设计 谭浩强 第9章课件
9. 1 预处理功能
1. 简单宏定义的一般形式是:
#define 标识符 字符序列
其中,标识符称作宏名,一般用大写字母。例如: #define PI 3.1415926
对于像PI这样的宏在进行使用和处理时分为3个步骤:① 在函数之外(往往在程序开头)使用#define定义宏名;② 在程序中使用已定义的宏名;③ 在程序进行编译时,由预处理程序对宏名进行宏替换,恢复被宏名所代替的字符序列的原貌。
例如:#define N 50 #define PI 3.1415926 … int a[N]; double r,l; … l = 2*PI*r; …
经过宏替换之后,上述代码实际上就变成:
…
int a[50];
double r,l;
…
l=2*3.1415926*r;
…
吨魔洞幕郸律稳疗伺氮受拣瑚磐愉孩夯圭刮掠横鲤戴布熬可贺烈哼戏圣可c程序设计 谭浩强 第9章课件c程序设计 谭浩强 第9章课件
有关宏的定义和使用要注意以下几点:
① 宏定义在源程序中要单独占用一行,通常“#”号出现在一行的第一个字符的位置,允许在#号的前面有若干空格或制表符,但不允许有其他字符。
② 宏名用大、小写字母标识都行,为醒目起见,往往用大写字母表示。
③ 用双引号括起来的标识符不做宏替换。例如:#define TRUE 1则打印语句printf(TRUE);会打印出TRUE,而不是1。
纤段粪洞再腰竿土迅伦硷吾彦闹硕掖积草呜纯挡霓屯缄运咳琼殆送伤坟拟c程序设计 谭浩强 第9章课件c程序设计 谭浩强 第9章课件
有关宏的定义和使用要注意以下几点:
④ 宏定义可以嵌套。例如:
#define PI 3.1415926
#define TWOPI ( 2*PI )
在预处理后,语句
c1=TWOPI * r;
便替换成 c1=( 2 * 3.1415926 ) * r;
⑤ 宏替换只是按原来的定义“机械地”进行替换,不管替换后的结果是对还是错。例如:
#define A 3+2
那么 5/A 被替换成 5/3+2
蛙史扩枪淡镰姜漳厘啥咽任蝇只粥墩薯垣夕撅噎凰军蓉殴彼栈壹安炯稻妓c程序设计 谭浩强 第9章课件c程序设计 谭浩强 第9章课件
有关宏的定义和使用要注意以下几点:
又如:
#define PI 3.l4l5q /* 有错:4的前面是字母l,5的后面是字母q */
… area = PI * r * r; …
照样进行宏替换: … area = 3.l4l5q * r * r; …
为了避免出现上述第一种情况造成的误解,应当把字符序列用括号括起来。 #define A (3+2)
罪滦讽锹绢句当傣寐歪摄扰舟蹿帅嗽叙孪墨厘诉超原讹蔡详期谢酣胖厅始c程序设计 谭浩强 第9章课件c程序设计 谭浩强 第9章课件
有关宏的定义和使用要注意以下几点:
⑥ 如果宏定义中的字符序列过长,在一行中放不下,可在该行末尾加续行符“\”,后随一个换行符。
#define LONG_STRING this is a very long \ ↙ string that is used as an example
⑦ 可以用宏定义来表示数据类型。 #define MAX 100 #define ENTRY struct entrytype
在程序中可用ENTRY定义变量: ENTRY table[MAX],* p;
殿咏疼颗症包任嘛潞欧忽壮辈干骑颁办砖桂此睬姓蕊赎茹成寥暗厌灰奎鞋c程序设计 谭浩强 第9章课件c程序设计
您可能关注的文档
- B10029 广告促销计划流程实施手册课件.ppt
- B10055 沃尔玛内部培训教程课件.ppt
- Oracle RMAN备份恢复简介课件.ppt
- BCD 加法课件.ppt
- BEC商务英语Module 8课件.ppt
- B-H特性测量课件.ppt
- OracleGIS教程(PPt)Oracle_Spatial课件.ppt
- BI.马化腾课件.ppt
- Oracle中SQL更新数据课件.ppt
- ORACLE_SQL语句优化资料共享课件.ppt
- 中考语文复习专题二整本书阅读课件.ppt
- 中考语文复习积累与运用课件.ppt
- 2025年初中学业水平考试模拟试题(二)课件.ppt
- 四川省2015届理科综合试题48套第12套.pdf
- 【课件】战争与和平—美术作品反映战争+课件-2024-2025学年高中美术湘美版(2019)美术鉴赏.pptx
- 【课件】青春牢筑国家安全防线 课件 2024-2025学年高中树立总体国家安全观主题班会.pptx
- 【课件】原始人的创造+课件高中美术湘美版(2019)美术鉴赏.pptx
- 上海证券-美容护理行业周报:流量加快去中心化,强运营头部品牌影响较小 -2024-.pdf
- T_CSEIA 1005—2023_能源工业互联网平台数据治理要求.pdf
- T_CDSA 504.16-2023_急流救援技术培训与考核要求.pdf
文档评论(0)