- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 编译预处理 1.了解预编译的概念,掌握宏定义的方法。 2.了解“文件包含”与预处理的应用。 3.了解条件编译的几种形式。 ? 5.1 概述? 5.1 概述(P98) 编译预处理概念 编译预处理是指, 在进行编译之前, 先对源程序中的编译预处理命令进行处理; 然后再将处理的结果, 和源程序一起进行编译, 以得到目标代码 种类 宏定义 # define 文件包含 # include 条件编译 # if _ # else_ # endif 等 格式 “ # ” 开头 占单独书写行 语句尾不加分号 ? 5.2 宏定义? 5.2 宏定义(P98) 不带参数宏定义 一般形式: #define 宏名 [字符串] 功能:用指定标识符(宏名)代替字符序列(宏体) 定义位置:任意 (一般在函数外面) 作用域: 从定义命令到文件结束 # undef 可终止宏名作用域 格式: #undef 宏名 宏展开:预编译时, 用宏体替换宏名 -- 不作语法检查 引号中的内容与宏名相同也不置换 宏定义可嵌套,不能递归 宏定义中使用必要的括号 ( ) ? 5.2 宏定义? 【例 5.1】 给出下面宏替换的结果 # define R 5.0 # define FORMAT Area =% f\n # define PI 3.14159 # define AREA R*R*PI # define PR printf # include stdio.h main() { PR( FORMAT, AREA ); PR( FORMAT ); } ? 5.2 宏定义? 带参数宏定义 一般形式: # define 宏名(参数表) 宏体 宏展开:形参用实参换,其它字符保留 例: # define S( a, b ) a * b …… area = S( 3, 2 ); 宏展开: area = 3 * 2; 宏名与左圆括号之间不能留有空格 例: # define S?(r) PI*r*r 相当于定义了不带参宏 S, 代表字符串 “(r) PI*r*r” 宏体及各形参外一般应加括号 ( ) ? 5.2 宏定义? 【例 5.2】用带参数宏定义求两个数的最大值 # define MAX(x, y) (x)(y)?(x):(y) # include stdio.h main() { int a, b, c; float x, y, z; scanf(%d%d, a,b); c = MAX(a,b); scanf(%f%f, x,y); z = MAX(x, y); printf(c = %d z=%f \n, c, z); } ? 5.2 宏定义? 带参的宏与函数区别 ? 5.2 宏定义? 在定义和使用宏调用时应该注意的问题 ① 参数多次计算。 ② 运算符优先级引起的问题。 ③ 宏定义中的字符串相连。 在定义无参宏时,如果“语言符号字符串”是一个常量,则相应的“宏名”就是一个符号常量。 # define EOF -1 /* 文件尾 */ # define NULL 0 /* 空指针 */ 使用宏定义的优点 ① 可提高源程序的可维护性 ② 可提高源程序的可移植性 ③ 减少源程序中重复书写字符串的工作量 ? 5.3 文件包含? 5.3 文件包含(P101) 概念 用 #include 开始的预处理命令称文件包含命令。文件包含是指,一个源文件可以将另一个源文件的全部内容包含进来。 一般格式 # include “文件名” 或 # include 文件名 预处理过程 按规定方法寻找文件, 若找到, 用被包含文件的内容取代该预处理命令,再对“包含”后的文件作一个源文件编译;若找不到, 则预编译出错,提示无法打开相应文件。 ? 5.3 文件包含? 文件包含的优点 一个大程序, 通常分为多个模块,并由多个人分别编程。有了文件包含处理功能,就可以将多个模块共用的数据(如符号常量和数据结构) 或函数,集中到一个单独的文件中。这样, 凡是要使用其中数据或调用其中函数的人,只要使用文件包含, 将所需文件
您可能关注的文档
- BASH使用与编程.doc
- BatchPrint使用手册—(图纸批量转换与打印).pdf
- bat常用命令与用法大全.doc
- BCB+MySQL课件.ppt
- BDE与DELPHI错误表.doc
- Beini抓取握手包&导出握手包到破解成功图文解析.doc
- BigBulbs_用户登录模块测试方案_v1.0知识.pdf
- Bing Map学习系列教材.docx
- 第5讲 Word 2010演示文稿.pptx
- BIOS及主板故障.doc
- 四川省德阳市罗江中学2025届高三考前热身化学试卷含解析.doc
- 山东省枣庄现代实验学校2025届高三下学期第五次调研考试化学试题含解析.doc
- 吉林省长春市十一高中等九校教育联盟2025届高三一诊考试生物试卷含解析.doc
- 2025届江苏省盐城市伍佑中学高考仿真模拟化学试卷含解析.doc
- 2025届广西贺州中学高考冲刺押题(最后一卷)生物试卷含解析.doc
- 安徽省池州市贵池区2025届高三第一次模拟考试生物试卷含解析.doc
- 宁夏银川一中2025届高三(最后冲刺)化学试卷含解析.doc
- 广东省广州市增城区四校联考2025届高考压轴卷化学试卷含解析.doc
- 2025届邯郸市第一中学高考生物必刷试卷含解析.doc
- 2025届安徽省安庆市石化第一中学高考仿真卷化学试卷含解析.doc
最近下载
- (招聘面试)二三管轮任职业务知识必备掌握要点(面试前好好研读).pdf
- 9.1-认识总体国家安全观-课件(共31张PPT).pptx
- 绿色金融改革创新试点政策对企业经营绩效的影响研究.pdf VIP
- 赣州市南康区赞贤小学开展“扣好人生第一粒扣子——我爱我的祖国主题演讲比赛活动方案.doc
- 个人医保承诺书模板.docx VIP
- 绿色金融改革创新试点政策对企业绿色创新的影响-来源:创新与创业教育(第2022002期)-中南大学.pdf VIP
- 信息技术环境下的数学教学设计结题报告.doc VIP
- 国金证券:新型消费研究系列-便利店-小业态大生意-打造便利生活.pdf
- HIKARI富山奇立铺布机使用说明书.doc
- 部编版语文四年级上册第七单元大单元教学设计核心素养目标.pdf VIP
文档评论(0)