网站大量收购独家精品文档,联系QQ:2885784924

C++第9章预处理.ppt

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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);

文档评论(0)

jgx3536 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档