- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第七章编译预处理预处理命令:以“#”号开头的命令,在对程序进行编译之前执行。例如:#includestdio.h#definePI3.14159预处理命令不是C语言本身的组成部分,不能被编译程序所识别,必须在编译之前先由专门的预处理程序进行转换。预处理命令一律以“#”号打头,以“回车”而不是分号结束。一、宏定义#define有两类:(1)不带参数的宏;(2)带参数的宏1.不带参数的宏#define标识符[字符序列]“标识符”为宏名。命名规则与变量名相同。“字符序列”为宏内容。预处理时,用宏内容替代宏名。#definepi3.14159#defineMSGPressanykeytocontinue…\nvoidmain(){doubler=2.0,s;printf(%f\n,pi);s=pi*r*r;pi=3.14;//错误,PI不是变量3.14159=3.14;printf(MSG);}不带参数的宏经常用于:常量定义。注意:(1)宏定义只能以“回车”结束,预处理程序将宏定义中从宏名之后的第一个非空格字符开始到回车符之间的所有字符作为替换文本。例如:#defineSTEP10;将语句i+=STEP/2;替换成i+=10;/2;//编译发现错误将语句i+=STEP-2;替换成i+=10;-2;//编译没发现该错误(2)如果宏定义超过一行,可以在该行行末加一个反斜杠“\”来续行。#defineLONG_STRINGthisis\notaverylongstring(3)如果在字符常量、字符串和注释中出现宏名,则不作扩展。例如:#defineHIHello不对语句printf(“HI”);进行扩展。(4)允许嵌套使用宏:一个宏名可以出现在另一个宏的替换文本中。例如:#defineX5#defineYX+1#defineZY*X对语句a=Z;进行扩展,过程如下:a=Y*X;=a=X+1*5;=a=5+1*5;表达式要尽量加括号,例如:#defineY(X+1)a=Y*X;=a=(X+1)*5;=a=(5+1)*5;(5)尽管宏名也是一个标识符,但它不是变量,不分配内存空间,因此不能当做变量使用。为了便于与变量名及其他标识符相区分,习惯上将宏名写成大写。例如:#definePI3(6)宏定义中可以没有替换文本。例如:#defineEMPTY无参宏定义的好处:(1)提高程序的可读性,描述性的宏名有助于更好地理解对应的替换文本中的含义和用途。例如:#defineNUM100for(i=0;iNUM;i++)sum+=a[i];(2)减少程序中同一个常量的重复书写,并方便对该常量的修改。例如:#definePI3……s=PI*r*r;l=2*PI*r;更直观,而且修改精度时只要修改一次。一、宏定义2.带参数的宏(类似于函数)#define标识符(参数表)字符序列#includestdio.h#defineMULT1(a,b)(a)*(b)#defineMULT2(a,b)a*bvoidmain(){ intx=5; printf(%d\
您可能关注的文档
- 【基础医学综合考试】局解复习思考题学习资料.doc
- C语言答案 第2章学习资料.doc
- C语言答案 第5章学习资料.doc
- C语言教材第0章_数制和进制学习资料.ppt
- C语言教材第1章绪论学习资料.ppt
- C语言教材第2章C语言基础学习资料.ppt
- C语言教材第3章顺序结构学习资料.ppt
- C语言教材第4章选择结构学习资料.ppt
- C语言教材第5章循环结构学习资料.ppt
- C语言教材第6章函数学习资料.ppt
- 难点详解鲁教版(五四制)6年级数学下册期末测试卷带答案详解(考试直接用).docx
- 难点详解鲁教版(五四制)6年级数学下册期末试题【培优】附答案详解.docx
- 难点解析鲁教版(五四制)7年级数学下册期末试题及完整答案详解(全国通用).docx
- 难点解析鲁教版(五四制)7年级数学下册期末试题含完整答案详解(名师系列).docx
- 难点解析鲁教版(五四制)7年级数学下册期末试题含完整答案详解【全国通用】.docx
- 难点解析鲁教版(五四制)7年级数学下册期末试卷(突破训练)附答案详解.docx
- 难点解析鲁教版(五四制)7年级数学下册期末试卷(能力提升)附答案详解.docx
- 难点详解京改版数学9年级上册期中试卷附参考答案详解【突破训练】.docx
- 难点解析鲁教版(五四制)7年级数学下册期末试题含完整答案详解(有一套).docx
- 难点解析鲁教版(五四制)7年级数学下册期末试卷带答案详解(夺分金卷).docx
文档评论(0)