- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第九章预编译处理*章节知识点:9.1编译预处理9.1.1不带参数的宏定义9.1.2带参数的宏定义9.1.3带参数的宏和带参数的函数的区别9.2“文件包含”处理*笔试考点分布知识点所占分值考试概率难易程度不带参数的宏定义2分20%★带参数的宏定义2分60%★★★文件包含1分30%★★机试考点分布与分析知识点所占分值考试概率难易程度带参数的宏定义10分30%★★★*9.1编译预处理在C语言中,凡是以“#”开头的行,都称为“编译预处理”命令行,编译预处理命令并不是C语言本身的组成部分,不能直接对他们编译,而是由预处理程序在编译前作出相应的处理。C语言中有多种预处理命令,在这里我们只讨论两种:#include和#define。这些命令行的后面不得加上“;”,以区别于C语言的语句。*所谓无参宏就是宏名后不带任何参数。其定义的一般形式为:#define宏名字符串(或数值)其中的“#”表示这是一条预处理命令,C语言中凡是以“#”开头的命令都为预处理命令。“define”为宏定义命令。说明:(1)宏名的前后应有空格。(2)宏定义是用宏名来表示一个字符串,在宏展开时又以该字符串取代宏名。(3)宏定义命令其后不要跟分号。(4)字符串(或数值)中如果出现运算符号,则要注意替换后的结果,通常可以在合适的位置加上括号。9.1.1不带参数的宏定义*例9.1:一个简单的宏定义#defineE2.71828#include“math.h”main(){floatsum;sum=sqrt(E)+E+E*E+E*E*E+E*E*E*E;printf(“%f”,sum);}*例9.2:宏应用举例。#defineN(8*x+x*x)/*定义N来替代表达式(8*x+x*x)*/main(){ints,x;printf(pleaseinputanumber:);scanf(%d,x);s=5*N+6*N+7*N;/*宏调用*/printf(s=%d\n,s);}*(6)宏定义的嵌套使用如:#definePI3.1415926#defineR5.5#defineCIRCLE2.0*PI*R#defineAREAPI*R*R(7)宏名的有效范围为从定义之处到本源文件结束。习惯上,#define写在程序最前面。(8)宏名出现在一对双引号中,将不会产生置换如:#defineP2.7189main(){printf(“P=%d”,P);}结果:P=2.7189*(9)宏定义还可以定义运算符、表达式、甚至可以把格式语句作为宏定义。如:#defineR3.5#defineAREA3.1415926*R*R#definePprintf#defineF%f\nmain(){P(F,AREA);}*9.1.2带参数的宏定义宏定义还有一个特点,就是宏替换名可以带有形式参数。在程序中,可以用实际参数代替这些形式参数。它的一般格式为:#define宏名(参数表)字符串例9.4:带参数宏应用举例一。#includestdio.h#defineMAX(a,b)(ab)?a:b/*定义M(a,b)替代表达式(ab)?a:b*/main(){inti=18,j=16;printf(Themaxnumberis:%d,MAX(i,j));}*#includestdio.h#defineB(x)((x)*(x)*(x))/*定义一个名为B的宏*/main(){inti=1;while(i=8)printf(%d\n,B(i++));}例9.5:求出下面程序段的结果!*文件包含命令的一般形式为:
您可能关注的文档
- 《C语言程序设计》教学课件合集(共12章)非AI生成.pptx
- 《C语言程序设计》教学课件合集(共8章)非AI生成.pptx
- 《C语言程序设计》教学课件合集(共8章)非AI生成 (2).pptx
- 《地理信息系统GIS》教学课件合集(共9章)非AI生成.pptx
- 《环境监测技术》教学课件合集(共5章)非AI生成.pptx
- 《C语言程序设计》第2章 C语言的基础知识-教学课件(非AI生成).ppt
- 《C语言程序设计》第2章 C语言基础-教学课件(非AI生成).ppt
- 《C语言程序设计》第2章 数据类型、运算符与表达式-教学课件(非AI生成).ppt
- 《C语言程序设计》第3章 简单语句与顺序结构程序-教学课件(非AI生成).ppt
- 《C语言程序设计》第3章 顺序结构程序设计-教学课件(非AI生成).ppt
- 2020版 沪科技版 高中生物学 必修2 遗传与进化《第4章 生物的进化》大单元整体教学设计[2020课标].docx
- 情绪价值系列报告:春节消费抢先看-国证国际证券.docx
- 精品解析:北京市东直门中学2023-2024学年高二下学期3月阶段性考试(选考)物理试题(解析版).docx
- 2020版 沪科技版 高中生物学 必修2 遗传与进化《第4章 生物的进化》大单元整体教学设计[2020课标].pdf
- 2020版 沪科技版 高中生物学 选择性必修1 稳态与调节《第1章 人体的内环境和稳态》大单元整体教学设计[2020课标].pdf
- 2020版 沪科技版 高中生物学 选择性必修1 稳态与调节《第1章 人体的内环境和稳态》大单元整体教学设计[2020课标].docx
- 液冷盲插快接头发展研究报告-全球计算联盟.docx
- 精品解析:北京市东直门中学2023-2024学年高二下学期3月阶段性考试(选考)物理试题(原卷版).docx
- 精品解析:北京市东直门中学2024届高三考前练习数学试卷(解析版).docx
- 2020版 沪科技版 高中生物学 选择性必修1 稳态与调节《第2章 人体的神经调节》大单元整体教学设计[2020课标].docx
最近下载
- 网神SecGate-3600--防火墙用户手册.doc
- 2024-2025学年河南省郑州市二七区五年级(上)期末语文试卷(全解析版).docx
- 听音识曲猜歌名游戏PPT课件.pptx
- 长城炮皮卡金刚炮_汽车使用手册用户操作图示图解详解驾驶指南车主车辆说明书电子版.pdf
- 日本著作权法(1970年).pdf
- 2020年天津南开区天津市南开中学高三下学期高考模拟英语试卷-学生用卷.doc
- 自贡市自流井区基层公务员队伍建设优化研究.pdf
- 2024年广西玉林市中考数学试卷真题(含答案逐题解析).docx
- 轩辕剑4黑龙舞兮云飞扬最全游戏秘籍【最详细攻略】.pdf
- 一组活性增强代谢较慢的菲牛蛭基因重组水蛭素及其制备方法.pdf VIP
文档评论(0)