- 1、本文档共145页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 如同看书的过程中,需要打一个电话求教,打完电话,又回到看书的活动中,从刚才打断的地方继续看书。 * * * * * * * * * * * * * ◆宏名中不能含有空格。 例如想用“A NAME”定义“SMISS”,而写成: #define A NAME SMISS 则实际进行的宏定义是A为宏名字,宏体是“NAME SMISS”。 C程序员一般都习惯用大写字母定义宏名字。这样的表示方法使宏名与变量名有明显的区别,以避免混淆。此外有助于快速识别要发生宏替换的位置,提高程序的可读性。 ◆不能进行宏名字的重定义。 (3)定义一个宏名字以后,就可以在后面使用这个宏名字了,包括在后面的宏定义中使用。 例如求圆的周长和面积的程序可以改写为 #include stdio.h #define PI 3.1415926 #define R 1.0 #define CIRCUM 2.0*PI*R /* 使用了前面定义的R和PI */ #define AREA PI*R*R int main(void) { printf(“The circum is %f and area is %f\n”,CIRCUM,AREA); } /*下面是另外一种形式的宏定义: */ #include stdio.h #define PI 3#define RADIUS 1.0 #define CIRCUM return(2.0*PI* RADIUS); /*分号是return语句的一部分 */ #define AREA return(PI* RADIUS* RADIUS); double circum( ) { CIRCUM } double area( ) { AREA } int main(void) { printf(The circum is %f and area is %f\n,circum(),area()); } (4)不能进行的宏替换。 不可以替换作为用户标识符中的成分。 例如在前面的例子中,不可以用“R”替换“CIRCUM”中的“R”。 不能替换字符串常量中的成分。 举例如下: #include stdio.h #define PI 3#define RADIUS 1.0 #define CIRCUM return(2.0*PI* RADIUS); #define AREA return(PI* RADIUS* RADIUS); int main(void) { printf(“The CIRCUM is %f ”, CIRCUM); printf(“ and AREA is %f\n”, AREA ); } 运行结果为: The CIRCUM is 6.283185 and AREA is 3.141593不会用宏名字“CIRCUM”和“AREA”替换格式串“CIRCUM”和“AREA”。 (5)一行中写不下的宏定义,应在前一行结尾使用一个续行符“\”,并且在下一行开始不使用空格。 例如 #define AIPHABET ABCDEFGHHIJKLMN\ OPQRSTUVWXY (6)宏定义可以写在源程序中的任何地方,但一定要写在程序中引用该宏之前,通常写在一个文件之首。对多个文件可以共用的宏定义,可以集中起来构成一个单独的头文件。 三、撤销已定义的宏 用命令#undef 可以撤销已定义的宏。 如: … #define OK 1 … #undef OK … 在 #undef 命令行之后的范围,OK不再代表1。 * * C语言程序设计 四、带参数的宏定义 C语言允许宏带有参数。在宏定义中的参数称为形式参数,在宏调用中的参数称为实际参数。对带参数的宏,在调用中,不仅要宏展开,而且要用实参去代换形参。 带参宏定义格式: #define 宏名(形参表) 字符串 在字符串中含有各形参。 带参宏调用的一般形式: 宏名(实参表); * * C语言程序设计 例如: #define M(y) y*y+3*y /*宏定义*/ : k=M(5); /*宏调用*/ : 在宏调用时,用实参5去代替形参y, 经预处理宏展开后的语句为: k=5*5+3*5 * * C语言程序设计 【例】 #define MAX(a,b) (ab)?a:b main(){ int x,y,max; printf(input
您可能关注的文档
- 证据法学开讲.ppt
- Vwiihw述职述廉报告王佩.doc
- 证据的基本原理.pptx
- VxWorks系统中映像及其加载过程.doc
- VxWorks网络加载.doc
- 词法分析及词法分析程序.ppt
- VVX1500配置手册(阅读).ppt
- 诚实守信ppt.ppt
- V带一级圆柱齿轮减速器的设计.doc
- V普通生物学整理内容.doc
- 七章货物的保险.pptx
- 三章国际间接投资.pptx
- 人性假设理论.pptx
- 外研高一英语必修三ModuleIntroduction汇总市公开课获奖课件省名师示范课获奖课件.pptx
- 月相成因优质获奖课件.pptx
- 小学二年级语文课件《狐假虎威》省名师优质课赛课获奖课件市赛课一等奖课件.pptx
- 养羊业概况专题知识讲座.pptx
- 微生物的实验室培养市公开课获奖课件省名师示范课获奖课件.pptx
- 人教版六年级下册式与方程整理与复习市公开课获奖课件省名师示范课获奖课件.pptx
- 必威体育精装版高中精品语文教学:第二单元-第7课-诗三首:涉江采芙蓉、-短歌行、归园田居市公开课获奖课件省名师.pptx
文档评论(0)