C语言程序设计 教学课件 ppt 作者 孙鸿飞 刘国成 主编 ch09

上传人:E**** 文档编号:89452788 上传时间:2019-05-25 格式:PPTX 页数:12 大小:130.76KB
返回 下载 相关 举报
C语言程序设计 教学课件 ppt 作者 孙鸿飞 刘国成 主编 ch09_第1页
第1页 / 共12页
C语言程序设计 教学课件 ppt 作者 孙鸿飞 刘国成 主编 ch09_第2页
第2页 / 共12页
C语言程序设计 教学课件 ppt 作者 孙鸿飞 刘国成 主编 ch09_第3页
第3页 / 共12页
C语言程序设计 教学课件 ppt 作者 孙鸿飞 刘国成 主编 ch09_第4页
第4页 / 共12页
C语言程序设计 教学课件 ppt 作者 孙鸿飞 刘国成 主编 ch09_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《C语言程序设计 教学课件 ppt 作者 孙鸿飞 刘国成 主编 ch09》由会员分享,可在线阅读,更多相关《C语言程序设计 教学课件 ppt 作者 孙鸿飞 刘国成 主编 ch09(12页珍藏版)》请在金锄头文库上搜索。

1、9.1 概述 9.2 宏定义 9.3 文件包含 9.4 条件编译,第9章 编译预处理,9.1 概述 9.1.1 预处理的工作方式,作用:对源程序编译之前,对#开头的命令做一些预处理,9.1.2 预处理命令,种类: 宏定义 #define 文件包含 #include 条件编译 #if-#else-#endif等,9.2 宏定义,如 if(x=YES) printf(“correct!n”); else if (x=NO) printf(“error!n”); 展开后: if(x=1) printf(“correct!n”); else if (x=0) printf(“error!n”);,不带

2、参数宏定义 一般形式: #define 宏名 宏体 功能:用指定标识符(宏名)代替字符序列(宏体) 宏名中不允许有空格,而且必须遵循C变量命名规则。宏名一般用大写字母。,宏展开:预编译时,用宏体替换宏名-不作语法检查,如 #define YES 1 #define NO 0 #define PI 3.1415926 #define OUT printf(“Hello,World”);,定义位置:一般在程序开头 作用域:从定义命令到文件结束 #undef可终止宏名作用域 格式: #undef 宏名,例 #define YES 1 main() #undef YES #define YES 0 m

3、ax() ,宏定义可嵌套,不能递归,例 #define MAX MAX+10 (),引号中的内容与宏名相同不需置换,例 #define PI 3.14159 printf(“2*PI=%fn”,PI*2); 宏展开:printf(“2*PI=%fn”,3.14159*2);,宏定义中使用必要的括号(),例 #define WIDTH 80 #define LENGTH WIDTH+40 var=LENGTH*2; 宏展开:var= 80+40 *2;,带参数宏定义 一般形式: #define 宏名(参数表) 宏体,宏展开:形参用实参置换,其它字符保留 宏体及各形参外一般应加括号(),例 #de

4、fine S(a,b) a*b area=S(3,2); 宏展开: area=3*2;,例 #define POWER(x) x*x x=4; y=6; z=POWER(x+y); 宏展开:z=x+y*x+y;,一般写成: #define POWER(x) (x)*(x) 宏展开: z=(x+y)*(x+y);,#define MAX(x,y) (x)(y)?(x):(y) . main() int a,b,c,d,t; . t=MAX(a+b,c+d); 宏展开:t=(a+b)(c+d)?(a+b):(c+d);,【例9.2】 编程,利用带参数的宏完成比较两个数的大小。,9.3 文件包含,功

5、能:一个源文件可将另一个源文件的内容全部包含 一般形式: #include “文件名” 或 #include , 直接按标准目录搜索 “ ” 先在当前目录搜索,再搜索标准目录,文件包含可嵌套,例 文件包含举例,#include #define N 8 #include “fun.c“ int main() printf(“%ldn“,fac(N); ,/* fun.c */ long int fac(int n) int i; long int s=1; for(i=1;i=n;i+) s*=i; return s; ,9.4 条件编译,功能:根据指定的标识符是否被定义过,确定在程序编译阶段编译哪一段程序段。,形式1:#if 表达式 程序段1 #else 程序段2 #endif,形式2:#ifdef 标识符 程序段1 #else 程序段2 #endif,形式3: #ifndef 标识符 程序段1 #else 程序段2 #endif,例:在调试程序时,常常希望输出一些所需的信息,而在调试完成后不再输出这些信息,可在源程序中插入以下的条件编译段:,#ifdef DEBUG printf(”x=%d,y=%d,z=%dn”,x,y,z); #endif,例 根据需要设置条件编译,能将字母全改为大写输出,或全改为小写字母输出。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号