当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

北京语言文化大学:《C语言程序设计导论》课程教学资源(PPT课件)第五章 预处理命令

资源类别:文库,文档格式:PPT,文档页数:7,文件大小:66.5KB,团购合买
三种预处理命令 一、宏定义 二、文件包含 三、条件编译
点击下载完整版文档(PPT)

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

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

5.1宏定义 5.11简单宏定义(不带参数的宏定义) 命令形式: # 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”做后缀也可以)。 包含命令的形式如下: # include中,表示到指定目录中寻找文件,常用于包含系统 提供的头文件。文件名放在””中,则先到当前工作目录中 找文件,再到指定目录中找,常用于包含自己提供的头文件 预处理程序对包含命令的处理过程:按规定方法寻找文件,若找 到,用文件内容替换包含命令所在的行。找不到,预编译出错, 提示无法打开相应文件。 包含文件可以嵌套,预处理程序会将其全部展开,直到不包含 个预处理命令为止。替换的文件是文本文件即可,但替换后要 满足C程序语法规定。 讨论使用包含命令应注意的问题

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

5.3条件编译 条件编译:控制程序中的某些行只在满足一定条件下才进行编译, 或控制满足某一条件时对一组语句进行编译,不满足这一条件 时编译另一组语句,的预处理命令 它的作用是划出源程序的一些片段,使预处理程序可以根据一定 条件确定保留或丢掉某个片段,或确定从几个片段中选取哪 个片段保留下来。 讨论条件编译的处理过程及使用注意问题。 形式1.# ifdef标识符 程序段1 程序段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, idndefo 本章主要知识点: ●宏定义的作用,代参宏定义的定义方法,宏调用和函数调用的区别, ●宏展开的方法 包含命令在多文件程序中的使用,常用头文件及相关函数的使用。 ◆条件编译的几种实现方法,如何使用控制条件编译的宏定义。 回本章首页

第五章 预处理命令 本章内容不多,但很实用,出现的预处理命令有:define,include, if,elif,else,endif, ifdef,idndef。 本章主要知识点: 宏定义的作用,代参宏定义的定义方法,宏调用和函数调用的区别, 宏展开的方法。 包含命令在多文件程序中的使用,常用头文件及相关函数的使用。 条件编译的几种实现方法,如何使用控制条件编译的宏定义。 回本章首页

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
已到末页,全文结束
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有