九章预处理命令.ppt

上传人:豆**** 文档编号:52901430 上传时间:2022-10-24 格式:PPT 页数:12 大小:258KB
返回 下载 相关 举报
九章预处理命令.ppt_第1页
第1页 / 共12页
九章预处理命令.ppt_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《九章预处理命令.ppt》由会员分享,可在线阅读,更多相关《九章预处理命令.ppt(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第九章 预处理命令九章预处理命令 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望第九章 预处理命令9.1 宏定义宏定义9.1.1 不带参的宏定义不带参的宏定义1.形式:#define 标识符 字符串例#define PRICE 30#define NUMBER 10#define TOTAL PRICE*NUMBER main()printf(“TOTAL=%dn”,TOTAL);预编译后,程序为:main()printf(“TOTAL=%dn”,30*10);第

2、九章 预处理命令2.说明:(1)不带参的宏常用来定义符号常量。(2)同一宏名可被重复定义,以最后的定义为准。(3)宏定义时,可引用已定义的宏名,层层置换。(4)宏展开时,只做简单的宏替换,不做任何语法检查或运算。(5)双引号内的宏名不被置换。(6)宏名的有效范围是从定义开始到文件结束,可用命令“#undef 标识符”来终止作用域。(7)一个命令只定义一个宏。第九章 预处理命令9.1.2 带参的宏定义带参的宏定义1.形式:#define 宏名(参数表)包含参数的字符串例 若有宏定义:#define s(a,b)a*b 且使用该宏:area=s(3,2);则预编译后,宏展开为:area=3*2;2

3、.宏如何展开#define s(a,b)a*b area=s(3,2);3*2第九章 预处理命令例#define PI 3.14#define s(r)PI*r*r main()float a=3.6,area;area=s(a);/*area=3.14*3.6*3.6;*/printf(“area=%fn”,area);若main函数改为:main()float a=3.6,b=6.4,area;area=s(a+b);/*area=3.14*3.6+6.4*3.6+6.4;*/printf(“area=%fn”,area);第九章 预处理命令3.说明:(1)带参宏展开时,只是用实参简单地替

4、换形参,并不会计算出实参值。(2)宏定义时,包含参数的字符串中的参数外面最好加一括弧。如:#define s(r)PI*(r)*(r)(3)带参宏定义时,宏名与括号之间不能加空格。若有定义:#define s (r)PI*r*r 则变为无参宏,展开为:area=(r)PI*r*r(a);4.函数与带参宏的区别:(1)函数调用时,要先自右而左计算出实参值;而带参宏展开时,只做简单的字符替换,不计算实参值。第九章 预处理命令(2)函数的调用是在运行时进行的,且为形参分配存储空间;而宏展开是在预编译时进行的,并不为形参分配存储空间。(3)对于函数,要给出参数的类型;而宏则不存在类型问题。例#defi

5、ne N 2+1#define M (N+1)*N/2 main()int j;for(j=1;jM;j+)printf(“%2d”,j);结果:1 2 3 4 5 6 7第九章 预处理命令9.2 文件包含文件包含1.形式:#include#include“文件名”第一种形式用于库函数,第二种多用于用户自定义函数。功能:预编译时,将被包含文件的内容全部复制到包含文件中。第九章 预处理命令/*format.h*/#define PR printf#define NL “n”#define D “%d”#define D1 D NL/*file1.c*/#include “format.h”mai

6、n()int a=1;PR(D1,a);文件包含处理后:/*file1.c*/#define PR printf#define NL “n”#define D “%d”#define D1 D NLmain()int a=1;PR(D1,a);宏展开:printf(“%d”“n”,a);第九章 预处理命令说明:1.若被包含文件修改了,则包含此文件的所有文件要重新编译。2.文件包含可嵌套P196。3.一个命令只包含一个文件,且要注意包含顺序。若文件1包含文件2,而文件2中要使用文件3的内容,则在文件1中应使用命令:#include“file3.h”#include“file2.h”第九章 预处理命令9.3 条件编译条件编译源程序中的一部分内容只在满足一定条件时才进行编译。n三种形式及功能1.#ifdef 标识符 程序段1#else 程序段2#endif 若宏定义了标识符,则执行程序段1;否则,执行程序段2。第九章 预处理命令2.#ifndef 标识符 程序段1#else 程序段2#endif若没有没有宏定义标识符,则执行程序段1;否则,执行程序段2。3.#if 表达式 程序段1#else 程序段2#endif 若表达式的值为真,则执行程序段1;否则,执行程序段2。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁