《简易C语言第7章编译预处理.ppt》由会员分享,可在线阅读,更多相关《简易C语言第7章编译预处理.ppt(9页珍藏版)》请在三一办公上搜索。
1、第七章 编译预处理,宏定义,文件包含,作用:对源程序编译之前做一些处理,生成扩展C源程序种类宏定义#define文件包含#include条件编译#if-#else-#endif等格式:“#”开头占单独书写行语句尾不加分号,不带参数宏定义一般形式:#define 宏名 宏体功能:用指定标识符(宏名)代替字符序列(宏体),宏展开:预编译时,用宏体替换宏名-不作语法检查,宏体可缺省,表示宏名定义过或取消宏体,定义位置:任意(一般在函数外面)作用域:从定义命令到文件结束#undef可终止宏名作用域 格式:#undef 宏名,宏定义可嵌套,不能递归,例#define MAX MAX+10(),引号中的内
2、容与宏名相同也不置换,宏定义中使用必要的括号(),7.1 宏定义,一般形式:#define 宏名(参数表)宏体,例#define S(r)PI*r*r相当于定义了不带参宏S,代表字符串“(r)PI*r*r”,宏展开:形参用实参换,其它字符保留宏体及各形参外一般应加括号(),例#define 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);,带参数宏定义,例 用宏定义和函数实现同样的功能,带参的宏与函数区别,功能:一个源文件可将另一个源文件的内容全部包含进来一般形式:#include“文件名”或#include,处理过程:预编译时,用被包含文件的内容取代该预处理命令,再对“包含”后的文件作一个源文件编译,直接按标准目录搜索“”先在当前目录搜索,再搜索标准目录可指定路径,7.2 文件包含,源文件(*.c)头文件(*.h),宏定义数据结构定义函数说明等,文件包含可嵌套,被包含文件内容,例 文件包含举例,