欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    九章预处理命令.ppt

    • 资源ID:52901430       资源大小:258KB        全文页数:12页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    九章预处理命令.ppt

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

    注意事项

    本文(九章预处理命令.ppt)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

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

    收起
    展开