- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
6.9 编译预处理 —6.9.2 宏定义 (5)带参的宏和带参函数很相似,但有本质上的不同,除上面已谈到的各点外,把同一表达式用函数处理与用宏处理两者的结果有可能是不同的。 【例6.19】用带参数的函数求某个数的平方 /* 源文件名:Li6_19.c 功能:利用带参数的函数求平方 */ #include ”stdio.h” void main() { int i=1; while(i=5) printf(%d\n,test(i++)); } test(int y) { return((y)*(y)); } 6.9 编译预处理 —6.9.2 宏定义 编译、连接、运行程序。程序运行后,屏幕显示: 6.9 编译预处理 —6.9.2 宏定义 【例6.20】带参数的宏求平方 /* 源文件名:Li6_20.c 功能:利用带参数的宏求平方 */ #include ” stdio.h” #define TEST(y) ((y)*(y)) void main() { int i=1; while(i=5) printf(%d\n,TEST(i++)); } 6.9 编译预处理 —6.9.2 宏定义 编译、连接、运行程序。程序运行后,屏幕显示: 在例6.19中函数名为test,形参为Y,函数体表达式为((y)*(y))。在例6.20中宏名为TEST,形参也为y,字符串表达式为(y)*(y))。例6.19的函数调用为test(i++),例6.20的宏调用为TEST(i++),实参也是相同的。从输出结果来看,却大不相同。 6.9 编译预处理 —6.9.2 宏定义 分析如下:在例6.19中,函数调用是把实参i值传给形参y后自增1。然后输出函数值。因而要循环5次。输出1~5的平方值。而在例6.20中宏调用时,只作替换,TEST(i++)被替换为((i++)*(i++))。从以上分析可以看出函数调用和宏调用二者在形式上相似,在本质上是完全不同的。 6.9 编译预处理 条件编译是指按照不同的条件去编译程序不同的部分,从而生成不同的目标代码,以实现程序的不同功能。条件编译可构造多种条件下运行的程序,提高程序的通用性和可移植性,便于程序的调式与纠错。大型C程序,经常使用条件编译。 与条件编译相关的预处理指令有:#if、#else、#ifdef、#ifndef、#elif和#endif 6.9.3 条件编译 6.9 编译预处理 —6.9.3 条件编译 条件编译指令的使用形式为: 1.# if的使用方法 (1)# if 常量表达式 程序段1 #else /*此部分可以没有*/ 程序段2 #endif 功能:如果常量表达式为真,编译程序段1,否则编译程序段2 6.9 编译预处理 —6.9.3 条件编译 (2)# if 常量表达式1 程序段1 # elif常量表达式 2 /*可有多个#elif */ 程序段2 #else 程序段3 #endif 功能:常量表达式1为真,编译程序段1;若常量表达式1为假,而常量表达式2为真,编译程序段2;其它,编译程序段3。 6.9 编译预处理 —6.9.3 条件编译 2.# ifdef的使用方法 形式:# ifdef 宏名 程序段1 #else /*此部分可以没有*/ 程序段2 #endif 功能:如果宏名(标识符)已被定义过,则编译程序段1,否则编译程序段2. 6.9 编译预处理 —6.9.3 条件编译 3.# ifndef的使用方法。 形式:# ifndef 宏名 程序段1 #else /*此部分可以没有*/
您可能关注的文档
- 应用型大学英语视听说教程5 高等教育公共英语类 徐平 教师用书unit 10 Speech.doc
- 材料力学 本科 任德斌 材力教案.doc
- CorelDRAW X4实用案例教程 高职多媒体 李向东林芳第14章 综合案例.ppt
- 材料力学 本科 任德斌 出版的习题答案.doc
- 材料力学 本科 任德斌 试题库.doc
- 点击职业英语 基础英语模块 学生频道2book 2 tape script.doc
- 点击职业英语 基础英语模块 学生频道2book2 答案及评分标准.doc
- 点击职业英语 基础英语模块 学生频道2test of book 2.doc
- 点击职业英语 基础英语模块 学生频道4 第二版 第二部分 教参Book 4 Unit 2 Dealing with Customer's Problems.doc
- 点击职业英语 基础英语模块 学生频道4 第二版 第二部分 教参Book 4 Unit 3 Modernising.doc
- 汽车英语3—汽车基本构造篇 教参book3 unit6 teacher's guidebook.doc
- 汽车英语3—汽车基本构造篇 教参Unit 1 教参.doc
- 汽车英语3—汽车基本构造篇 教参UNIT 4teacher's guidebook.doc
- 汽车英语3—汽车基本构造篇 教参Unit 8 教参.doc
- C语言程序设计案例教程 高职计算机大类专业 熊锡义第7章 指针.ppt
- 汽车英语3—汽车基本构造篇 教参Unit 9 teacher's guide.doc
- 汽车英语3—汽车基本构造篇 教参Unit 10 教师用书.doc
- C语言程序设计案例教程 高职计算机大类专业 熊锡义第8章 结构体 共用体和枚举类型.ppt
- 汽车英语4—汽车英语实训篇2010.10.08教师用书.doc
- 汽车英语III汽车基本构造篇的3和7单元的教参答案Unit3 electric system teacher's book.doc
最近下载
- 南京工业大学《工业设计史》教案.pdf VIP
- 高中早读晨读的语文素材.pptx VIP
- 独立储能电站安全技术与评价_储能资料课件.pptx VIP
- 保险原理与实务第五版李民习题答案.doc VIP
- 慢慢走,欣赏啊!.ppt VIP
- 2025国家发展和改革委员会直属单位招聘笔试备考题库及答案解析.docx VIP
- 在线网课学习课堂《药物非临床研究的思路和方法(中国药科大学 )》单元测试考核答案.pdf VIP
- 油浸式电力变压器(电抗器)现场低频加热试验导则.pdf VIP
- 超星尔雅学习通《大学生劳动教育(合肥工业大学)》2025章节测试附答案.docx VIP
- 吉安市永丰县选调事业单位工作人员考试真题2024.docx VIP
原创力文档


文档评论(0)