《C语言程序设计导论》课程电子教案(PPT教学课件)第五章 预处理命令

第五章预处理命令 2本章的主要内容:三种预处理命令 ◆宏定义 ◆文件包含 ◆条件编译 回首页
本章的主要内容:三种预处理命令 宏定义 文件包含 条件编译 第五章 预处理命令 回首页

5.1宏定义 5.1.1简单宏定义(不带参数的宏定义 命令形式 # define宏名字替代正文 对宏定义的处理:将宏名字替换(也叫宏展开)为替代正文,不作任何 语法检査。 书写习惯:用大写字母表示宏名字,以区别于普通变量名 讨论使用宏定义的好处 宏定义的作用范围:C程序中,宏定义位置一般写在程序开头,从宏定义 开始处有效。如果要在源程序的某处提前终止宏定义的作用域,可以 使用# undef,形式如下: # undef宏名字 表示从该行开始,不再存在这个宏定义。 宏定义的替代正文可以是任意的字符组合,预处理程序对它的处 理只是简单的展开和替换,结果是否正确,由编译程序来检査
5.1.1简单宏定义(不带参数的宏定义) 命令形式: #define 宏名字 替代正文 对宏定义的处理:将宏名字替换(也叫宏展开)为替代正文,不作任何 语法检查。 书写习惯:用大写字母表示宏名字,以区别于普通变量名。 讨论使用宏定义的好处。 宏定义的作用范围:C程序中,宏定义位置一般写在程序开头,从宏定义 开始处有效。如果要在源程序的某处提前终止宏定义的作用域,可以 使用#undef,形式如下: #undef 宏名字 表示从该行开始,不再存在这个宏定义。 宏定义的替代正文可以是任意的字符组合,预处理程序对它的处 理只是简单的展开和替换,结果是否正确,由编译程序来检查。 5.1 宏定义

5.1宏定义 5.1.2带参数的宏定义 命令形式: # define宏名字(参数表)替代正文 宏名字后紧跟括号,括号内是逗号分隔的几个标识符,被看作参数名字, 替代正文中应出现参数表中的参数。 程序中使用带参数的宏类似于函数调用,称为“宏调用”,形式为: 宏名字(实参表) 除了给出宏名字,还要给出各个宏参数的替代段,替代段之间也用逗号 分隔 讨论使用宏调用和函数调用的特点。 预处理程序对带参宏定义的处理分两步: (1)用宏调用的实际参数替代出现在替代正文中的对应宏参数。 (2)代换结果用到程序中出现宏调用的地方。 讨论在定义和使用宏调用时还应该注意的问题
5.1.2 带参数的宏定义 命令形式: #define 宏名字(参数表) 替代正文 宏名字后紧跟括号,括号内是逗号分隔的几个标识符,被看作参数名字, 替代正文中应出现参数表中的参数。 程序中使用带参数的宏类似于函数调用,称为“宏调用” ,形式为: 宏名字(实参表) 除了给出宏名字,还要给出各个宏参数的替代段,替代段之间也用逗号 分隔。 讨论使用宏调用和函数调用的特点。 预处理程序对带参宏定义的处理分两步: (1)用宏调用的实际参数替代出现在替代正文中的对应宏参数。 (2)代换结果用到程序中出现宏调用的地方。 讨论在定义和使用宏调用时还应该注意的问题。 5.1 宏定义

5.2文件包含 用# include开始的预处理命令叫文件包含命令。由于该命令写在 所有的源文件的开头,又叫头文件,常用“.h做后缀,(没 有后缀或用“c”做后缀也可以) 包含命令的形式如下: # inc lude中,表示到指定目录中寻找文件,常用于包含系统 提供的头文件。文件名放在””中,则先到当前工作目录中 找文件,再到指定目录中找,常用于包含自己提供的头文件。 预处理程序对包含命令的处理过程:按规定方法寻找文件,若找 到,用文件内容替换包含命令所在的行。找不到,预编译出错, 提示无法打开相应文件。 包含文件可以嵌套,预处理程序会将其全部展开,直到不包含 个预处理命令为止。替换的文件是文本文件即可,但替换后要 满足C程序语法规定 讨论使用包含命令应注意的问题
用#include开始的预处理命令叫文件包含命令。由于该命令写在 所有的源文件的开头,又叫头文件,常用“.h”做后缀,(没 有后缀或用“ c”做后缀也可以)。 包含命令的形式如下: #include 或: #include “文件名” 文件名放在<>中,表示到指定目录中寻找文件,常用于包含系统 提供的头文件。文件名放在” ”中,则先到当前工作目录中 找文件,再到指定目录中找,常用于包含自己提供的头文件。 预处理程序对包含命令的处理过程:按规定方法寻找文件,若找 到,用文件内容替换包含命令所在的行。找不到,预编译出错, 提示无法打开相应文件。 包含文件可以嵌套,预处理程序会将其全部展开,直到不包含一 个预处理命令为止。替换的文件是文本文件即可,但替换后要 满足C程序语法规定。 讨论使用包含命令应注意的问题。 5.2 文件包含

5.3条件编译 条件编译:控制程序中的某些行只在满足一定条件下才进行编译, 或控制满足某一条件时对一组语句进行编译,不满足这一条件 时编译另一组语句,的预处理命令。 它的作用是划出源程序的一些片段,使预处理程序可以根据一定 条件确定保留或丢掉某个片段,或确定从几个片段中选取哪 个片段保留下来。 讨论条件编译的处理过程及使用注意问题。 形式1.# ifdef标识符 程序段1 #else 程序段2 #endif 根据标识符是否由用# define命令定义过,选择保留程序段1或程 序段2
条件编译:控制程序中的某些行只在满足一定条件下才进行编译, 或控制满足某一条件时对一组语句进行编译,不满足这一条件 时编译另一组语句,的预处理命令。 它的作用是划出源程序的一些片段,使预处理程序可以根据一定 条件确定保留或丢掉某个片段,或确定从几个片段中选取哪一 个片段保留下来。 讨论条件编译的处理过程及使用注意问题。 形式1. #ifdef 标识符 程序段1 #else 程序段2 #endif 根据标识符是否由用#define命令定义过,选择保留程序段1或程 序段2。 5.3 条件编译

5.3条件编译 形式2.#if表达式 程序段1 #else 程序段2 #endif 根据表达式值是否为真,选择保留程序段1还是程序段2 形式3.#if表达式1 程序段1 #elif表达式2 程序段2 #elif表达式3 #else 程序段n #endif 根据多个表达式值,从若干程序段中选取一段
形式2. #if 表达式 程序段1 #else 程序段2 #endif 根据表达式值是否为真,选择保留程序段1还是程序段2。 形式3.#if 表达式1 程序段1 #elif 表达式2 程序段2 #elif 表达式3 ··· #else 程序段n #endif 根据多个表达式值,从若干程序段中选取一段。 5.3 条件编译

第五章预处理命令 章内容不多,但很实用,出现的预处理命令有: define, include, if, elif, else, endif, ifdef, idndef o 十本章主要知识点: ●宏定义的作用,代参宏定义的定义方法,宏调用和函数调用的区别, 宏展开的方法 →包含命令在多文件程序中的使用,常用头文件及相关函数的使用。 ◆条件编译的几种实现方法,如何使用控制条件编译的宏定乂。 回本章首页
第五章 预处理命令 本章内容不多,但很实用,出现的预处理命令有:define,include, if,elif,else,endif, ifdef,idndef。 本章主要知识点: 宏定义的作用,代参宏定义的定义方法,宏调用和函数调用的区别, 宏展开的方法。 包含命令在多文件程序中的使用,常用头文件及相关函数的使用。 条件编译的几种实现方法,如何使用控制条件编译的宏定义。 回本章首页
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C语言程序设计导论》课程电子教案(PPT教学课件)第九章 文件.ppt
- 《C语言程序设计导论》课程电子教案(PPT教学课件)第七章 指针.ppt
- 《程序设计语言》第8章 指针.ppt
- 《程序设计语言》第8章 编译预处理.ppt
- 《程序设计语言》第7章 函数.ppt
- 《程序设计语言》模拟试题.ppt
- 《程序设计语言》集中复习.ppt
- 《程序设计语言》第1章习题.ppt
- 《程序设计语言》第3章 语言翻译问题.ppt
- 《程序设计语言》第2章 机器体系机构对语言的影响.ppt
- 《程序设计语言》课程简介.ppt
- 《程序设计语言》第1章 程序语言设计问题.ppt
- 《C语言程序设计(Visual C++ 6.0环境)》第九章 结构体与共用题.ppt
- 《C语言程序设计(Visual C++ 6.0环境)》第四章 C程序流程设计.ppt
- 《C语言程序设计(Visual C++ 6.0环境)》第三章 数据输入与输出.ppt
- 《C语言程序设计(Visual C++ 6.0环境)》第十章 文件.ppt
- 《C语言程序设计(Visual C++ 6.0环境)》第五章 数组.ppt
- 《C语言程序设计(Visual C++ 6.0环境)》第二章 数据描述.ppt
- 《C语言程序设计(Visual C++ 6.0环境)》第八章 指针.ppt
- 《C语言程序设计(Visual C++ 6.0环境)》第一章 C语言概念.ppt
- 《C语言程序设计导论》课程电子教案(PPT教学课件)第十章 位运算.ppt
- 《C语言程序设计导论》课程电子教案(PPT教学课件)第一章 程序设计概述.ppt
- 《C语言程序设计导论》课程电子教案(PPT教学课件)第二章 数据类型、运算符与表达式.ppt
- 《C语言程序设计导论》课程电子教案(PPT教学课件)第三章 语句及控制结构.ppt
- 《C语言程序设计导论》课程电子教案(PPT教学课件)第四章 函数和程序结构.ppt
- 清华大学:《计算机程序设计基础》课程教学资源(PPT课件)第二章 基本数据类型及其运算.ppt
- 清华大学:《计算机程序设计基础》课程教学资源(PPT课件)第一章 C语言的基本概念(主讲:乔林).ppt
- 清华大学:《计算机程序设计基础》课程教学资源(PPT课件)第三章 程序控制结构.ppt
- 清华大学:《计算机程序设计基础》课程教学资源(PPT课件)第四章 复合数据结构基础.ppt
- 清华大学计算中心:《计算机程序设计基础》第五章 结构化程序设计概论.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)Chapter 1 An Overview of C(1.2)The feature of C.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)第二章 算法 algorithm.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)Chapter 1 An Overview of c.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)Chapter 3 Data types, Operators and Expressions.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)Chapter 4 Input and Output.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)Chapter 5 Control Flow.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)Chapter 7 Arrays.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)Chapter Functions.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)第九章 预处理命令.ppt
- 《C程序设计语言》课程PPT教学课件(讲稿)第十一章 结构体与共用体.ppt