九章预处理命令.ppt
《九章预处理命令.ppt》由会员分享,可在线阅读,更多相关《九章预处理命令.ppt(12页珍藏版)》请在三一文库上搜索。
1、第九章 预处理命令,9.1 宏定义 9.2 文件包含 9.3 条件编译,9.1 宏定义,9.1.1 不带参的宏定义 1. 形式:#define 标识符 字符串 例 #define PRICE 30 #define NUMBER 10 #define TOTAL PRICE*NUMBER main( ) printf(“TOTAL=%dn”, TOTAL); 预编译后,程序为: main( ) printf(“TOTAL=%dn”, 30*10);,2. 说明: (1)不带参的宏常用来定义符号常量。 (2)同一宏名可被重复定义,以最后的定义为准。 (3)宏定义时,可引用已定义的宏名,层层置换。
2、(4)宏展开时,只做简单的宏替换,不做任何语法检查或运算。 (5)双引号内的宏名不被置换。 (6)宏名的有效范围是从定义开始到文件结束,可用命令“#undef 标识符”来终止作用域。 (7)一个命令只定义一个宏。,9.1.2 带参的宏定义 1. 形式:#define 宏名(参数表) 包含参数的字符串 例 若有宏定义:#define s(a,b) a*b 且使用该宏:area=s(3,2); 则预编译后,宏展开为:area=3*2; 2. 宏如何展开 #define s(a,b) a*b area=s(3,2);,例 #define PI 3.14 #define s(r) PI*r*r mai
3、n( ) float a=3.6, area; area=s(a); /*area=3.14*3.6*3.6;*/ printf(“area=%fn”, area); 若main函数改为: main( ) float a=3.6, b=6.4, area; area=s(a+b); /*area=3.14*3.6+6.4*3.6+6.4;*/ printf(“area=%fn”, area); ,3. 说明: (1)带参宏展开时,只是用实参简单地替换形参,并不会计算出实参值。 (2)宏定义时,包含参数的字符串中的参数外面最好加一括弧。如: #define s(r) PI*(r)*(r) (3)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 预处理 命令
链接地址:https://www.31doc.com/p-2571179.html