《C语言程序设计 工业和信息化普通高等教育十二五 规划教材立项项目 教学课件 ppt 作者 赵山林 高媛 第十三章 编译预处理》由会员分享,可在线阅读,更多相关《C语言程序设计 工业和信息化普通高等教育十二五 规划教材立项项目 教学课件 ppt 作者 赵山林 高媛 第十三章 编译预处理(9页珍藏版)》请在金锄头文库上搜索。
1、第十三章 编译预处理,Page 2,13.1 宏定义,不带参数的宏定义 1不带参数的宏定义 不带参数的宏定义的一般定义形式如下: #define 宏 字符序列 define为宏定义的特定字,宏是用户标识符,字符序列可以是任意字符序列。该命令功能是将字符序列定义为宏。宏起作用的范围是从定义开始到本文件结束。宏定义之后的程序中就可以使用宏表示字符序列。 预编译时,编译预处理程序将源程序文件中作用域范围内的宏都替换为其代替的字符序列,这一替换过程称为宏展开或宏替换。,Page 3,13.1 宏定义,不带参数的宏定义 2终止宏定义命令 终止宏定义命令的一般形式如下: #undef 宏 其功能是从该命令
2、开始,宏不再代表相应的字符序列,即该宏的作用范围到此结束。,Page 4,13.1 宏定义,带参数的宏定义 2终止宏定义命令 带参数的宏定义的一般形式如下: #define 宏(形参表列) 字符序列 形参表列由一个或多个参数组成,参数之间用逗号分隔。字符序列中应包含有形参表列中的参数。 程序中使用带参数宏,称为宏调用,方法如下: 宏 (实参表列) 实参为程序中引用宏的参数。编译预处理时,宏调用展开不是进行简单的字符序列替换,而是使用实参替换字符序列中的形参。,Page 5,13.2 文件包含,文件包含是指在一个文件中包含另外一个文件的全部内容。 文件包含命令的一般格式: #include 或
3、#include “文件名“ 其中include是文件包含的特定字。预处理时,编译预处理程序把指定的文件内容复制到本文件中该命令处,替代该条命令。,Page 6,13.3 条件编译,1#ifdef条件编译命令 #ifdef条件编译的一般格式为: #ifdef 标识符 程序段1 #else 程序段2 #endif 其中标识符是宏名,该条件编译命令的作用是当所指定的标识符已经被define命令定义过,则在程序编译阶段只编译程序段1,否则编译程序段2,#else部分可以没有。,Page 7,13.3 条件编译,2#ifndef条件编译命令 #ifndef条件编译的一般格式格式为: #ifndef 标识符 程序段1 #else 程序段2 #endif 该命令的作用与#ifdef条件编译命令恰好相反,若标识符未被定义过则编译程序段1,否则编译程序段2。,Page 8,13.3 条件编译,3#if条件编译命令 #if条件编译的一般格式为: #if 整型表达式 程序段1 #else 程序段2 #endif 该命令的作用是若整型表达式为真则编译程序段1,否则编译程序段2。其中整型表达式必须是整型常量。,谢谢使用,C语言 程序设计,中北大学 电子与计算机科学技术学院,第十三章 编译预处理,