谭浩强C语言配套课件C第六章

上传人:xian****hua 文档编号:245123819 上传时间:2024-10-07 格式:PPT 页数:8 大小:239.13KB
返回 下载 相关 举报
谭浩强C语言配套课件C第六章_第1页
第1页 / 共8页
谭浩强C语言配套课件C第六章_第2页
第2页 / 共8页
谭浩强C语言配套课件C第六章_第3页
第3页 / 共8页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第七章 编译预处理,作用:,对源程序编译之前做一些处理,生成扩展C源程序,种类,宏定义,#define,文件包含,#include,条件编译,#if-#else-#endif等,格式:,“#”开头,占单独书写行,语句尾不加分号,如 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”);,7.1,宏定义,不带参数宏定义,一般形式:,#define 宏名 宏体,功能:用指定标识符(宏名)代替字符序列(宏体),宏展开:预编译时,用宏体替换宏名-,不作语法检查,如 #define YES 1,#define NO 0,#define PI 3.1415926,#define OUT printf(“Hello,World”);,宏体可缺省,表示宏名,定义过或取消宏体,定义位置:任意(,一般在函数外面),作用域:从定义命令到文件结束,#undef可终止宏名作用域,格式:,#undef 宏名,例,#define YES 1,main(), .,#undef YES,#define YES 0,max(),.,YES,原作用域,YES,新作用域,宏定义可嵌套,不能递归,例 #define MAX MAX+10 (,),引号中的内容与宏名相同也不置换,例 #define,PI,3.14159,printf(“2*,PI,=%fn”,PI,*2);,宏展开:printf(“2*,PI,=%fn”,3.14159,*2);,宏定义中使用必要的括号,(),例 #define,WIDTH,80,#define,LENGTH,WIDTH,+40,var=LENGTH*2;,宏展开:var= 80+40 *2;,( ),( ),例 #define,WIDTH,80,#define,LENGTH,WIDTH,+40,var=LENGTH*2;,宏展开:var= 80+40 *2;,带参数宏定义,一般形式:,#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);,#define MAX(x,y) (x)(y)?(x):(y),.,main(), int a,b,c,d,t;,.,t=MAX(a+b,c+d);,宏展开:,t=(a+b)(c+d)?(a+b):(c+d);,int max(int x,int y), return(xy?x:y);,main(), int a,b,c,d,t;,.,t=max(a+b,c+d);,例 用宏定义和函数实现同样的功能,带参的宏与函数区别,带参宏,函数,处理过程,不分配内存,简单的字符置换,分配内存,先求实参值,再代入形参,处理时间,编译时,程序运行时,参数类型,无类型问题,定义实参,形参类型,程序长度,变长,不变,运行速度,不占运行时间,调用和返回占时间,7.2,文件包含,功能:一个源文件可将另一个源文件的内容全部包含进来,一般形式:,#include “,文件名”,或,#include ,#include “file2.c”,file1.c,file2.c,file1.c,file2.c,A,B,A,处理过程:预编译时,用被包含文件的内容取代该预处理命令,再对“包含”后的文件作一个源文件编译,直接按标准目录搜索,“”,先在,当前目录,搜索,再搜索标准目录,可指定路径,被包含文件内容,源文件(*.c),头文件(*.h),宏定义,数据结构定义,函数说明等,文件包含可嵌套,#include “file2.c”,file1.c,A,file3.c,C,#include “file3.c”,file2.c,B,file1.c,A,file3.c,file2.c,例 文件包含举例,#define sqr(x) (x)*(x),#define cube(x) (x)*(x)*(x),#define quad(x) (x)*(x)*(x)*(x),#include ,#include cc.cpp,#define MAX_POWER 10,void main(), int n;,printf(numbert exp2t exp3t exp4n);,printf(-t-t-t-n);,for(n=1;n=MAX_POWER;n+),printf(%2dt %3dt %4dt %5dn,n,sqr(n),cube(n),quad(n);,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!