[东华实业股吧]预处理02 – 零基础入门学习C语言51
作者
第九章:预处理02让编程改动国际Changetheworldbyprogram带参宏界说C言语答应宏带有参数。在宏界说中的参数称为方式参数,在宏调用中的参数称为实践参数。对带参数的宏,在调用中,不只要宏打开,并且要用实参去代换形参。带参宏界说的一般方式为:define宏名(形参表)字符串带参宏调用的一般方式为:宏名(实参表);例如:defineM(y)yy+3y?/宏界说/k=M(5);?/宏调用/在宏调用时,用实参5去替代形参y,经预处理宏打开后的句子为:k=55+35看实例includedefineMAX(a,b)(a>b)?a:bvoidmain(){?intx,y,max;printf("inputtwonumbers:");scanf("%d%d",&x,&y);?max=MAX(x,y);//max=(x>y)?x:y;printf("Themaxis%dnn",max);}关于带参的宏界说有以下问题需求阐明:带参宏界说中,宏名和形参表之间不能有空格呈现。例如把:defineMAX(a,b)?(a>b)?a:b写为:defineMAX?(a,b)?(a>b)?a:b试试看~在带参宏界说中,方式参数不分配内存单元,因而不用作类型界说。而宏调用中的实参有详细的值。要用它们去代换形参,因而必须作类型阐明。这是与函数中的状况不同的。在函数中,形参和实参是两个不同的量,各有自己的效果域,调用时要把实参值赋予形参,进行“值传递”。而在带参宏中,仅仅符号代换,不存在值传递的问题。在宏界说中的形参是标识符,而宏调用中的实参可所以表达式。includedefineSAY(y)(y)voidmain(){?inti=0;charsay[]={73,32,108,111,118,101,32,102,105,115,104,99,46,99,111,109,33,0};while(say){say=SAY(say*1+1-1);i++;}printf("nt%snn",say);}在宏界说中,字符串内的形参一般要用括号括起来以防止犯错。在上例中的宏界说中(y)*(y)表达式的y都用括号括起来,因而成果是正确的。假如去掉括号,把程序改为以下方式:includedefineSQ(y)(y)(y)?//yy试试voidmain(){inta,sq;printf("inputanumber:");scanf("%d",&a);sq=SQ(a+1);//sq=a+1*a+1printf("sq=%dn",sq);}将比如3标题进行反常:咱们现在要160÷SQ(y)比如03反常:includedefineSQ(y)((y)*(y))??voidmain(){inta,sq;printf("inputanumber:");scanf("%d",&a);sq=160/SQ(a+1);??//sq=160/((a+1)*(a+1));printf("sq=%dn",sq);}带参的宏和带参函数很类似,但有本质上的不同,除上面已谈到的各点外,把同一表达式用函数处理与用宏处理两者的成果有可能是不同的。课后题:比较比较(点击下载)宏界说也可用来界说多个句子,在宏调用时,把这些句子又代换到源程序内。看下面的比如。比如04:includeincludedefineSTR(s1,s2,s3,sum)??strcat(strcat(strcat(sum,s1),s2),s3)voidmain(){charstr1[]="I",str2[]="love",str3[]="Fishc!",str[40]="";STR(str1,str2,str3,str);//strcat(strcat(strcat(str,str1),str2),str3)printf("ntstr1=%sntstr2=%sntstr3=%sntStr??=%snnn",str1,str2,str3,str);str[0]=0;STR(str2,str1,str3,str);printf("ntstr1=%sntstr2=%sntstr3=%sntStr??=%snnn",str1,str2,str3,str);}视频下载
技能,IT技能,视频教程,C言语
技能,IT技能,视频教程,C言语
目录
推荐阅读
-
600499股吧(纺织品配额)
近期,多家保险公司连续发表本年三季度偿付才能陈述。记者据揭露数据不完全统计,到10月27日,已有32家险企发表第三季度偿付才能陈述...
-
金科股份600636股票会退市吗?
财经常识的学习和使用需求重视危险管理能力的提高。出资者们需求具有危险意识和危险管理能力,以应对商场危险和出资危险。下面常识中的这篇...
-
数字产业(券商研究所排名)授房网
财经是一个触及广泛的范畴,不只包含股票、基金、债券等金融产品,还包含房地产、税收、稳妥等方面。关于普通人而言,了解财经常识能够协助...
-
002232股票历史交易002207数据 002236历史交易数据
股票出资是一种需求慎重的出资方法,出资者需求有正确的出资理念和风险意识,防止盲目跟风和过度自傲,避免形成不必要的丢失。常识将带你了...
-
冀东水泥(冀东水泥股票到底发生了什么)
1、1冀东水泥000401第二次停牌预计1个月,最晚于2022年1月19日复牌公司于1994年5月8日成立,注册资本为人民币323...
-
美股道琼斯实时行情走势图_603688石英股份股吧
2019年年头至今可以盈余82%,是什么水平?出资者总是喜爱将一时的盈余,作为是一种高兴去夸耀。我给出的答案是:撞大运的水平!在股...
-
涨停原因环保(长城电工集团)
全国社保基金组合是什么?社保基金为了能够让社保费保值增殖,特托付各基金公司协助社保公司理财,将每笔5亿人民币给有资历的基金公司协助...