C语言程序设计与实训 教学课件 ppt 作者 周屹 万静 第九章 编译预处理

上传人:E**** 文档编号:89188065 上传时间:2019-05-20 格式:PPT 页数:13 大小:1.72MB
返回 下载 相关 举报
C语言程序设计与实训 教学课件 ppt 作者 周屹 万静 第九章   编译预处理_第1页
第1页 / 共13页
C语言程序设计与实训 教学课件 ppt 作者 周屹 万静 第九章   编译预处理_第2页
第2页 / 共13页
C语言程序设计与实训 教学课件 ppt 作者 周屹 万静 第九章   编译预处理_第3页
第3页 / 共13页
C语言程序设计与实训 教学课件 ppt 作者 周屹 万静 第九章   编译预处理_第4页
第4页 / 共13页
C语言程序设计与实训 教学课件 ppt 作者 周屹 万静 第九章   编译预处理_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《C语言程序设计与实训 教学课件 ppt 作者 周屹 万静 第九章 编译预处理》由会员分享,可在线阅读,更多相关《C语言程序设计与实训 教学课件 ppt 作者 周屹 万静 第九章 编译预处理(13页珍藏版)》请在金锄头文库上搜索。

1、第九章 编译预处理,9.1 宏定义 9.2 文件包含 9.3 条件编译,第九章 编译预处理,作用:对源程序编译之前做一些处理,生成扩展C源程序 种类 宏定义 #define 文件包含 #include 条件编译 #if-#else-#endif等 格式: “#”开头 占单独书写行 语句尾不加分号,9.1 宏定义,不带参数宏定义 一般形式: #define 宏名 宏体 功能:用指定标识符(宏名)代替字符序列(宏体),如 #define YES 1 #define NO 0 #define PI 3.1415926 #define OUT printf(“Hello,World”);,定义位置:任

2、意(一般在函数外面) 作用域:从定义命令到文件结束 #undef可终止宏名作用域 格式: #undef 宏名,如 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”);,宏展开:预编译时,用宏体替换宏名-不作语法检查,例 #define PI 3.14159 printf(“2*PI=%fn”,PI*2); 宏展开:printf(“2*PI=%fn”,3.14159*2);,例 #defi

3、ne MAX MAX+10 (),宏定义中使用必要的括号(),宏定义可嵌套,不能递归,例 #define WIDTH 80 #define LENGTH WIDTH+40 var=LENGTH*2; 宏展开:var= 80+40 *2;,带参数宏定义,一般形式: #define 宏名(参数表) 宏体,例 #define S(a,b) a*b area=S(3,2); 宏展开: area=3*2;,宏展开:形参用实参换,其它字符保留 宏体及各形参外一般应加括号(),例 #define S (r) PI*r*r 相当于定义了不带参宏S,代表字符串“(r) PI*r*r”,例 #define POW

4、ER(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);,不能加空格,例 用宏定义和函数实现同样的功能,带参的宏与函数区别,9.2 文件包含命令,功能:一个源文件可将另一个源文件的内容全部包含进来 一般形式: #include “文件名”或 #include 处理过程:预编译时,用被包含文件的内容取代该预处理命令,再 对“包含”后的文件作一个源文件编译, 直接按标准目录搜索 “” 先在当前目录搜索,再搜索标准目录 可指定路径,9.2 文件包含命令,被包含

5、文件内容 源文件(*.c) 头文件(*.h),宏定义 数据结构定义 函数说明等,文件包含可嵌套,9.3 条件编译,条件编译可有效地提高程序的可移植性,并广泛地应用在商业软件中,为一个程序提供各种不同的版本。利用条件编译,还可使同一源程序即适合于调试(进行程序跟踪、打印较多的状态或错误信息),又适合高效执行要求。 条件编译主要有以下用途: (1)忽略程序的某一部分。 (2)帮助程序调试,条件编译命令常常应用在头文件中,防止标识符重定义。条件编译命令有以下形式: 格式 1: #ifdef 标识符 程序段 1 #else 程序段 2 #endif 或 #ifdef 标识符 程序段 1 #endif

6、标识符已经#define定义,执行程序段1;否则,执行程序段2。,格式 2: #ifndef 标识符 程序段 1 #else 程序段 2 #endif 或 #ifndef 标识符 程序段 1 #endif 标识符未经#define定义, 执行程序段 1;否则,执行程序段 2。,格式 3: #if 表达式 程序段 1 #else 程序段 2 #endif 或 #if 表达式 程序段 1 #endif 表达式值为非0,执行程序段1;否则,执行程序段2。,本章小结,C标准规定可以在C源程序中加入一些“预处理命令”,以改进程序环境,提高编程效率。对于预处理命令,必须在程序编译之前,先对这些特殊命令进行“预处理”。C语言提供的预处理功能主要有以下三种:宏定义、文件包含、条件编译,分别用宏定义命令,文件包含命令,条件编译命令来实现。为了与一般C语句相区别,这些命令以符号“#”开头。,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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

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