- 1、本文档共28页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言程序设计(姜学峰版)PPT课件第九章-课件(PPT-精)
* * 第九章 编译预处理 9.1 宏定义 9.2 文件包含处理 概述 1. Turbo C的编译过程 TC整个编译过程分两步:编译预处理和正式编译; 编译预处理——根据编译预处理命令进行; 正式编译——在预处理的基础上进行,包括词法、 语法分析和目标代码的生成。 由于TC采用单趟扫描编译,因而在发出编译命 令后,编译预处理和正式编译一次完成,其间不会 产生预处理后的中间文件。 2. 预处理命令的分类 主要有三类:宏定义 文件包含 条件编译(改善程序的可移植性) 3. 预处理命令的使用要求 1)以#号打头; 2)不是C语句,而不必以分号结束; 3)通常书写在函数之外、源文件开头; 9.1 宏定义 用一个标识符来代表一个字符串; 宏定义分为不带参数和带参数的宏定义。 1. 无参宏定义 一般形式:#define 宏名 宏字符串 其中: 1)define是宏定义命令名; 2)宏名按C标识符命名规则命名,通常字母大写; 3)宏串是不加双引号的字符序列; 4)当宏串为数字串时,宏名又称为符号常量。 作用: 在编译预处理阶段,将定义点之后的宏名全部 用宏串替换;替换过程也称为宏展开。 意义: 1)便于参数的修改,一改全改; 2)一次定义可多处引用。 例:输入半径r,求圆周长和圆面积。 #define PI 3.141592 main( ) { float r, c, s; printf(Enter radius:); scanf(%f, r); c=2.0*PI*r; /*展开后: c=2.0*3.141592*r;*/ s=PI*r*r; /*展开后: s=3.141592*r*r;*/ printf(C=%-10.2f\nS=%-10.2f\n, c, s); } Enter radius: 1↙ C=6.28 S=3.14 使用说明: 1)利用TC的预处理实用程序CPP.EXE,可仅完成预 编译并产生预编译的中间文件,其扩展名为.i 对上例: 执行CPP.EXE程序对EXA91.C进行预处理: C:\TC30CPP C:\ZYC\CPRG\EXA91.C↙ 显示预编译中间文件的内容: C:\TC30TYPE EXA91. I ↙ 2)一个宏命令只能定义一个宏名; 3)宏串中的每个字符都是有效字符; 下例多余字符均导致编译出错: #define PI 3.141592 宏展开结果:c=2.0*3.141592*r; #define PI 3.141592; 宏展开结果:c=2.0*3.141592; *r; 4)宏定义可书写在函数之外的任何位置;一个宏名 的有效范围是定义点开始直到本源文件结束;但 可利用宏终止命令加以限定; 如:#define G 9.8 main( ) { …… } 宏名G有效; fun1(…) main、fun1可引用。 { …… } #undef G fun2(…) { …… } 5)字符串中与宏名相同的字符不被替换; 6)宏串中可出现已定义的宏名,这种现象称为宏的 嵌套定义; 如:#define R 3.0 #define PI 3.141592 #define C 2.0*PI*R #define S PI*R*R main( ) { printf(C=%f\nS=%f\n, C, S); } 最终输出项C替换为:2.0*3.141592*3.0 S替换为:3.141592*3.0*3.0 例:一程序多处使用相同的输入提示、多处使用相 同的输出格式字符串,为减少书写量,使用宏 定义来实现。 #define PROMPT printf(Please input data:) #define FORMAT Result: %d,%d,%d,%d\n main( ) { int a, b, c, d, e, f; PROMPT;
您可能关注的文档
最近下载
- 五四制初中一年级中华优秀传统文化教学设计.pptx VIP
- 《微生物与健康》课件科学六年级上册.pptx
- 七年级上册生物学《生物体的结构层次》单元作业设计.docx
- 电子信息工程职业规划 (第二版).pptx VIP
- 党的二十届三中全会精神测试题300道(单选、多选、判断、填空).docx VIP
- 部编教材年级识字课教学.ppt VIP
- 贵州省贵阳市2024-2025学年高一上学期10月联合考试(一) 数学 PDF版含解析.pdf
- 基于Android的个人生活行为记录及习惯养成平台的设计与实现-毕业设计.doc
- 中国传媒大学-节目主持艺术基础(第二版)-课件.pptx
- 纤维增强复合材料在建筑工程结构加固中的应用(经济论文资料).doc
文档评论(0)