- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言课件 第十章节
第10章 预处理、输入/输出和文件操作;10.1 预处理功能
10.2 文 件 包 含
10.3 条 件 编 译
10.4 其他预处理功能
10.5 库函数使用方式
10.6 常用标准输入/输出函数
10.7 文件及有关操作
10.8 其他一些常用的函数(宏);10.1 预处理功能; 对于像PI这样的宏在进行使用和处理时分为3个步骤:① 在函数之外(往往在程序开头)使用#define控制行定义宏名;② 在程序中使用已定义的宏名;③ 在程序进行编译时,由预处理程序对宏名进行宏替换,恢复被宏名所代替的字符序列的原貌。例如:
#define N 50
#define PI 3.1415926
…
int a[N];
double r,l;
…
l = 2*PI*r;
…
;经过宏替换之后,上述代码实际上就变成:
…
int a[50];
double r,l;
…
l=2*3.1415926*r;
…
; 有关宏的定义和使用要注意以下几点:
① 宏定义在源程序中要单独占用一行,通常“#”号出现在一行的第一个字符的位置,允许在#号的前面有若干空格或制表符,但不允许有其他字符。
② 宏名用大、小写字母标识都行,为醒目起见,往往用大写字母表示。
③ 用双引号括起来的标识符不做宏替换。例如:
#define TRUE 1
则打印语句
printf(TRUE);
会打印出TRUE,而不是1。
; ④ 宏定义可以嵌套。例如:
#define PI 3.1415926
#define TWOPI ( 2*PI )
在预处理后,语句
c1=TWOPI * r;
便替换成
c1=( 2 * 3.1415926 ) * r;
⑤ 宏替换只是按原来的定义“机械地”进行替换,不管替换后的结果是对还是错。例如:
#define A 3+2
那么 5/A
被替换成
5/3+2
; 又如:
#define PI 3.l4l5q
/* 有错:4的前面是字母l,5的后面是字母q */
…
area = PI * r * r;
…
照样进行宏替换:
…
area = 3.l4l5q * r * r;
…
为了避免出现上述第一种情况造成的误解,应当把字符序列用括号括起来。
#define A (3+2)
; ⑥ 如果宏定义中的字符序列过长,在一行中放不下,可在该行末尾加续行符“\”,后随一个换行符。
#define LONG_STRING this is a very long string that is used as \ ↙
an example
⑦ 可以用宏定义来表示数据类型。
#define MAX 100
#define ENTRY struct entrytype
在程序中可用ENTRY定义变量:
ENTRY table[MAX],* p;
; ⑧ 如果宏名出现在#号之后,则不对它进行替换。例如:
#define DEF define
#DEF N 10
⑨ 宏名的有效范围是从定义它的地方开始到其所在文件末尾或者用 #undef指令消除该宏定义为止。宏名不受分程序结构的影响,在其有效范围内遵循宏替换的规则。
;10.1.2 带参数的宏定义
1.带参数宏定义的一般格式
带参数的宏定义的一般形式是:
#define 宏名(参数表) 字符序列
例如,定义一个计算圆面积的宏:
#define PI 3.1415926536
#define area(r) (PI * r * r)
; 例10-2:下面的程序中使用了带参数的宏,它计算并输出给定半径的圆的面积。
#define PI 3.1415926536
#define area(r) (PI*r*r)
void main()
{
printf(%f\n,area(6.18));
}
; 2.几点使用说明
① 使用宏定义时所带的实参可以是常量、已被赋值的变量名或者表达式。
例10-3:将例10-2的程序改写为交互式输
您可能关注的文档
最近下载
- 部编版小学六年级语文上册第七单元每课课后作业及答案汇编(含四套题).pdf VIP
- XXX斜拉桥监理实施细则.pdf VIP
- 技嘉主板B660M GAMING AC DDR4 (rev.1.x)用户手册简体中文(版本 1102).pdf
- 2025年秋季开学第一课精品课件.pptx
- 人教版七年级上册英语Unit 4知识点梳理及语法讲义.pdf VIP
- 人教版七年级上册英语Unit4知识点梳理及语法讲义(学生版).pdf VIP
- 斜拉桥特大桥监理细则.pptx
- 部编版小学六年级上册全册心理健康教育教案.pdf VIP
- 硼中子俘获治疗技术及应用.pptx VIP
- 《绿色低碳产业认定行业技术规范 资源循环利用产业 》编制说明.pdf
文档评论(0)