- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 编译预处理 7.1 宏定义 7.2 文件包含 7.3 条件编译 预处理不是C语言本身的组成部分,不能直接进行编译。在对源程序编译之前,系统先将这部分命令进行“预处理”,处理后源程序将不再包括预处理命令,随后系统完成编译,链接生成目标程序。 C语言提供3种预处理功能:宏定义;文件包含;条件编译。 案例一 宏的使用 1. 问题描述 计算物体在水中的浮力以及在不同液体和不同物体体积下受到的浮力(假设物体全部沉入水中)。 2. 问题分析 浮力=pgv。 在水中,物体受到的浮力与体积有关,g 是常数,将g定义为宏(无参宏)。 在液体中,不同物体在不同液体中受到的浮力与物体体积和液体的密度有关,将计算公式也定义为宏(有参宏)。 3. ?C语言代码 #include stdio.h /*预处理指令是以# 号为开头的代码行,#include是一个文件包含预处理 */ #define g 9.8 /*g定义为无参宏*/ #define F(p, v) (p*9.8*v) /*将浮力计算公式定义为有参宏,物体体积v和液体密度p为参数,也可将 F(p, v)定义为(p*g*v),即有参宏的嵌套定义 */ void main() { float F1, F2; float p, v; /*以下部分计算物体在水中的浮力F1*/ printf(请输入在水中物体的体积v\n); scanf(%f, v); F1=1000*g*v; /*替换无参宏名g,将g替换成数值9.8*/ printf(物体在水中的浮力是F1=%f\n, F1); /*以下部分计算不同物体在不同液体中的浮力F2*/ printf(请输入在某液体中液体的密度p和物体的体积v\n); scanf(%f, %f, p, v); F2=F(p, v); /*替换有参宏F(p, v),将F(p, v)替换为表达式p*9.8*v */ /*如果采用宏的嵌套定义,F(p, v)首先替换为表达式p*g*v,再替换为p*9.8*v*/ printf(物体在液体中的浮力F2=%f\n, F2); #undef g; /*取消g宏定义*/ #undef F(p, v); /*取消宏F(p, v)定义*/ } 4. 程序运行结果 请输入在水中物体的体积v 12.2 物体在水中的浮力是F1=119560 请输入在某液体中液体的密度p和物体的体积v 700, 24 物体在液体中的浮力F2=164640 7.1 宏 定 义 宏定义是预处理命令中的一种,它提供了一种可以替换源代码中字符串的机制。根据宏中是否有参数,可以将宏定义分为不带参数的宏定义和带参数的宏定义。 宏定义是预处理命令中的一种,它提供了一种可以替换源代码中字符串的机制。根据宏中是否有参数,可以将宏定义分为不带参数的宏定义和带参数的宏定义。 7.1.1 不带参数的宏定义 不带参数的宏定义格式如下: #define 标识符 字符串 宏定义格式中“标识符”为用户定义标识符,称为宏名,也叫符号常量,一般用大写字母表示。 字符串可以是常量、表达式、格式串等。 注意:宏定义不是C语言的语句,宏定义结尾没有分号。 说明: (1) 预处理中,源程序在宏定义之后出现的所有与宏名一样的标识符都替换成宏定义中的字符串,不做语法检查。例如:将#define g 9.8错误地写成#define g 98,则在编译预处理中将g替换为98进行编译。 (2) 源程序中宏可以嵌套定义。例如,计算圆柱体体积: #define R 6.3 #define HIGHT 12.5 #define VOLUME (3.14*R*R*HIGHT) /*宏的嵌套定义*/ 在?#define VOLUME (3.14*R*R*HIGHT)中HIGHT和R宏定义VOLUME在之前,即为宏嵌套定义。 嵌套定义的替换过程为由外到内,例如: ① 将宏名R进行替换,替换结果为 #define VOLUME (3.14*6.3*6.3*HIGHT) ② 将宏名HIGHT进行替换,替换结果为 #define VILUME (3.14*6.3*6.3*12.5) 案例一中: #define g 9.8 /*g定义为无参宏*/ #define F(p, v) (p*g*v) /*g宏定义在F之前,也是宏的嵌套定义*/ (3) 宏定义的作用域。一个宏名与变量一样也有它的作用域,宏名的作用范围从该宏名的宏定义处开始到所在文件的结尾,或用#undef命令取消该宏定义为止。例如,在如下程序段计算物体在水中的浮力, #include st
您可能关注的文档
- 第5章_软件生产函数、效益分析及不确定性分析.pptx
- 第5章模块化程序设计.ppt
- 第6章 分立元件基本应用电路 - 2021.pptx
- 第6章 无形资产2020.ppt
- 第6章_软件工程项目进度计划的制订.pptx
- 第7章 投资性房地产2020.ppt
- 第7章 集成运算放大器及其应用 - 2021.pptx
- 第7章_软件工程项目的团队建设、风险管理及质量管理.pptx
- 第7章-索引结构与散列技术.pptx
- 第8章 金融资产2020.ppt
- 湖南省衡阳市第八中学2026届高三上学期第一次月考物理(原卷版).doc
- 浙江省普通高中尖峰联盟2026届高三上学期10月联考英语(原卷版).doc
- 四川省绵阳市南山中学实验学校2026届高三上学期10月月考英语(原卷版).doc
- 湖南省衡阳市第八中学2026届高三上学期第二次月考历史 Word版含解析.doc
- 福建中考物理5年(2021-2025)真题分类汇编:专题09 功和机械能(原卷版).doc
- 福建中考物理5年(2021-2025)真题分类汇编:专题10 内能及其利用(原卷版).doc
- 福建中考物理5年(2021-2025)真题分类汇编:专题07 压强(原卷版).doc
- 福建中考物理5年(2021-2025)真题分类汇编:专题01 机械运动(原卷版).doc
- 福建中考物理5年(2021-2025)真题分类汇编:专题02 声现象(解析版).doc
- 福建中考物理5年(2021-2025)真题分类汇编:专题02 声现象(原卷版).doc
最近下载
- 脊髓损伤截瘫患者术中获得性压力性损伤预防指南(2025版).pdf VIP
- 青年教师培训ppt课件(52张).ppt VIP
- 最新钢结构厂房监理规划.docx
- 工商企业管理专业职业规划书范本.pdf VIP
- 电路第六版邱关源习题及答案全解.docx VIP
- 外贸跟单操作(第三版)课件 项目6--8 出口包装跟单、 出口运输跟单、 出口结汇跟单.pptx
- 人教部编版七年级上册语文精品课件 第四单元 单元主题阅读 (7).ppt VIP
- 2025年11月广东深圳市龙华区招聘社区网格员72人笔试模拟试题及答案解析.docx VIP
- 建设工程安全监理规程最新版.docx VIP
- QB∕T 5612-2021 钛杯 QB∕T 5612-2021 钛杯 QB∕T 5612-2021 钛杯.pdf
原创力文档


文档评论(0)