- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c语言程序设计--宏
C语言中的宏 宏替换 一、不带参数的宏替换 1.“预编译处理”就是在C编译程序对C源程序进行编译前,由编译预处理程序对这些预处理命令进行处理的过程 2.不带参数的宏定义命令形式如下: #define 宏名 替换文本 或#define 宏名 知识点: 预处理命令必须以一个“#”开头,末尾不得加“;” 宏名不得与程序中的其他名字相同 3.宏名与替换文本就是等量代换的关系 例: 1)#define PI 3.14 #define ADDPI (PI+1) #define TWO_ADDPI (2*ADDPI) X=TWO_ADDPI/2 =(2*ADDPI)/2 =(2*(PI+1))/2 =(2*(3.14+1))/2 2) #define PI 3.14 #define ADDPI PI+1 #define TWO_ADDPI 2*ADDPI X=TWO_ADDPI/2 =2*ADDPI/2 =2*PI+1/2 =2*3.14+1/2 3) #define N 2 #define M N+1 #define NUM (M+1)*M/2 NUM=(M+1)*M/2 =(N+1+1)*N+1/2 =(2+1+1)*2+1/2 4.宏定义在一行写不下转下一行,在最后一个字符后紧跟一个“\” 5.替换文本不能替换双引号或用户标识符中与宏名相同的字符串成分 例:#define YES 12 printf(“YES”)中的YES是一个宏名,此处只能输出YES,而不能输出宏名YES所代表的文本12 二、带参数的宏替换 1.#define 宏名(形参表) 替换文本 注意: 形参表中只需要有形参名,不需要有类型名,可以有一个形参也可以有多个 2.等量代换 例:1)#define MU(x,y) ((x)*(y)) a=MU(5,2)=((5)*(2))=10 b=6/MU(a+3,a)=6/((a+3)*(a)) 2) #define MU(x,y) x*y a=MU(5,2)=5*2=10 b=6/MU(a+3,a)=6/a+3*a =6/10+3*10=30 #define PR(ar) printf(“ar=%d”,ar) Main() { int j,a[]={1,3,5,7,9,11,13,15},*p=a+5; for(j=3;j;j--) switch(j) { case 1: case 2:PR(*P++);break’; //printf (“ar=%d”,*p++); case 3:PR(*(--P)); // printf(“ar=%d”,*(--p)); } } 结果:ar=9 ar=9 ar=11 3)#define MIN(x,y) (x)(y)?(x):(y) i=10,j=15; k=10*MIN(i,j) =10*(10)(15)?(10): (15) =10015?10:15 =15 4)#define FUDGF(y) 2.84+y #define PR(a) printf(”%d”,(int) (a)); #define PRINT1(a) PR(a);putchar(‘\n’); Y=PRINT1(FUDGF(5)*x) x=2 =PR(FUDGF(5)*x);putchar(‘\n’) = printf(“%d”,(int)(FUDGF(5)*x) );putchar(‘\n’) = printf(“%d”,(int)(2.84+5*2) );putchar(‘\n’) =printf(“%d”,12);putchar(‘\n’) =12CR 三、终止宏定义 格式:#undef 注意后面没有分号 例:#define PI 3.14 main() {
您可能关注的文档
最近下载
- 2024风力发电装置技术规范.docx VIP
- 歐姆龍AOI_OMRON自動光學檢測機編程培訓手冊(完美精華版).pdf VIP
- 人教精通版6年级上下册重点单词和句型默写.pdf VIP
- 社区获得性肺炎诊疗指南PPT课件.pptx VIP
- 钢筋笼吊装验算书.docx VIP
- 小学语文教学中人工智能辅助作文批改与评价策略研究教学研究课题报告.docx
- 美国仪表协会标准 ISA TR 88.95.01-2008 一起使用ISA-88和ISA-95.pdf VIP
- DB32T 4797-2024 旅游警务服务规范.docx VIP
- 《固定式钢梯及平台安全要求 第2部分:钢斜梯》GB 4053.2-2009.docx VIP
- 影视传播概论4.ppt VIP
文档评论(0)