- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C第9章预处理
跳转到第一页 * 编 译 预 处 理 第 9 章 9.1 编译预处理命令 1. 什么是编译预处理? 编译预处理是指C编译系统在对源程序进行编译之前,先对其进行一些预加工。例如: 把 #include 命令指定的头文件嵌入到源程序中来; 把 #define 命令定义的标识符替换为字符串等。 2. 编译预处理命令 C语言提供 3 种预处理命令: 宏定义: #define 文件包含:#include 条件编译:#ifdef 预处理命令与普通语句的区别:以“#”开头,行末不加分号。例如: #define PI 3.14159 #include stdio.h 9.2 宏定义 什么是宏?宏是指用一个简单名字代替一个比较复杂的字符串。(宏观的名) 9.2.1 无参宏定义 定义形式: #define 宏名 字符串 例如:#define PI 3.1416 宏替换(宏展开):编译预处理时,编译系统用字符串3.1416 替换程序中的宏名PI。 [例9.1] 计算圆的周长、面积和体积。 #define PI 3.1416 // 宏定义命令 void main() { float r, L, s, v; printf(input r: ); scanf(%f , r); L=2*PI*r; // 宏替换后为 L=2*3.1416*r; s=PI*r*r; v=4.0/3.0*PI*r*r*r; printf(L=%f\ns=%f\nv=%f\n, L, s, v ); } 几点说明: ① 宏名与字符串之间要用空格分开, 例如:#define PI 3.1416 ;宏名使用大写字母以便与变量名相区别,宏不分配内存。 ② 使用宏定义命令的优点:便于书写和修改,增强程序的通用性和可移植性。 例如,要将PI改为3.1415926,只要把宏定义命令改为 #define PI 3.1415926 即可。 又如, #define N 10 int a[N]; 要修改数组的大小,只要修改宏定义命令即可: #define N 100 ③ 编译预处理时只作替换,不作语法检查。例如: #define PI 3.14159 其中数字1写成了小写字母l,预处理时照样替换成小写字母l ,所以要认真检查。 ④ 宏名的有效范围:从定义位置开始到程序结束。用#undef命令可以终止宏定义的作用域。 ⑤ 宏定义可嵌套。 ⑥ 字符串内与宏名相同的字符不替换。 #define G 9.8 void main() { … } # undef G int f1() { … } 的有效范围 G [补充例题1] 宏定义的嵌套。 #include stdio.h #define R 10 #define PI 3.1416 #define S PI*R*R // 宏定义嵌套 void main() { printf ( S=%f\n, S); } 字符串内的字符S不替换 第1次替换:PI*R*R 第2次替换:3.1416*10*10 2R=1.60 1. 下列程序段输出结果是_________。 #define R 0.8 … printf(2R=%.2f, 2*R);
您可能关注的文档
- 4-5 线性方程组的解的结构.ppt
- 4.4中位数教授教化设计(青岛版八年级上).doc
- 4.1管理责任A.0-1.doc
- 4.4中位数教授教化设计(青岛版八年级上)1.doc
- 4.8.3歇息防护用品(具)和保健品发放治理轨制.doc
- 4.1-原子的构成.ppt
- 4.设计交底及图纸会审指南.doc
- 4.除杂质.doc
- 4-习题课1.ppt
- 423感恩母爱主题班会课件.ppt
- 人教版英语5年级下册全册教学课件.pptx
- 部编人教版2年级上册语文全册教学课件含单元及专项复习.pptx
- 人教版8年级上册英语全册教学课件(2021年8月修订).pptx
- 教科版(2017版)6年级上册科学全册课件+课时练.pptx
- 人教版PEP版6年级英语下册全册教学课件(2022年12月修订).pptx
- 部编人教版2年级下册语文全册课件(2021年春修订).pptx
- 人教版数学6年级下册全册教学课件(2023年教材).pptx
- 湘少版5年级下册英语全册教学课件(2021年春修订).pptx
- 人教PEP4年级下册英语全册教学课件 [2}.pptx
- 人教版6年级上册英语全册教学课件.pptx
文档评论(0)