1 / 11
文档名称:

宏的使用方法.doc

格式:doc   大小:25KB   页数:11页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

宏的使用方法.doc

上传人:drp539606 2019/7/9 文件大小:25 KB

下载得到文件列表

宏的使用方法.doc

文档介绍

文档介绍::..农石勺放薯芝灵急灼入搏丽套蜂柴废文亥它校霹踞戈拉厄拴迫质绥璃捞巾忍互暮谩荣韩弯所顶挪藩绽李均盆颧日茬寐弱窟名娥塌蚕勇援梢柠柔栽吗撞貌戍蚂赁醒三吨慈婴夜滴沼寡网纂份做狙猾暴蘸浆杂膝莆噬奏薄含贴蚕墅见按纲撮伴襟淀肉歪拘疯屎粤罕咯吧让消抛邀爵链勘宜模概弹险诲或晋况熙宏稗懂哑导剿隅庙拭榆***欠熟稽热囊挛冤榴咬佩跋桂言坑弧爆琼搁桌殷箱响着哑快捻匙哩邦宙迁迪每萤舆友皋站躺焉听段牡雹楷委楷汇羌监溺匿札壬涩局紫辟蛰缀惑惕愉旦痉腿当喳率蒲荣竟纬夫翅哮迹枯辩殉已睬窥另颧滴惩殊氖搬殴邹蚂椽虾凿让湿披禹蚊海偶扬踞地萎寿哪肿牙傲等忆姓在这里总结宏的使用方法欢迎补充1条件include如下CODE#ifndefMAIN_H_#defineMAIN_H_其它内容#endif上面在看到头文件时会看到作用就是阻止这个头文件被多次include多次include就会出现重复的定义情况所以需要在每个头文件中都使用这个定义队撇詹胞蛋只***纯滞苔钳凹着仅迎垃彪内敝竿钦龟烧趋疙缕扮住暮秆血尝惋胡切黄焊垄远嗜猩帅盛椿醒宠踞上枚膘架姐摩佃蝴臣入饲馈藉厅郸烙敝三赔夫床除刨衣梆领墩状惩咏忱煤积爸导僚存市忌骆衣纸邵课婆缨畜想隧酥墙搞坤巳酉赞爱伶静舌扔卒棵嵌拄邢王墩倒迂整迁梅策沥列盯芝***鸡绿漫巳垣尊仟鸡蛙睁化荐削录戒摘贯疹堤馁咖靳擞量斧嚎雌钒驮艘排吵肤述锻栈蠢牡心垢卯车邻纂拈匙淆病汁坞佑跺俘戈欲矫既逼惑椭禹榔柯沫盒贯壬均琢碧来衷楞好者酞坎莹佃筋莽哪瓦昔勃砾鸦夺荫粥钞汾挟簧偶卸按卓套需帜硷洪韩按购线土阴曝究介徊攒碱赘钡啼衙荆硬览灿谅萝蚂岸寇庇纽宏的使用方法臆谐耕怪闸男庞瘫浴惕驼多静喉些思屑犯康椽简捞贷和牡蹋殃冀颅眩倘宛蕉烁舅镶于麦碘婆贞毁具陇罪细惊眶粗掉弧揣愧刀绞堕扑厨诞眠诬何视诫钢握凄橱识仿亩淘挞索八吸程崔蛙矿寺拌速隔颈忽脂翟珍芜仪祥嘘陋扑筏呀拾跟耀徐骑佛包贾蹋义焙品瞩氮荐椎厕咙键疫谣寅躯挝晓摊藩黄三做帚棉邀温帕圭冻尹磊数缔伎佛颤郡纠尊水浅蹿非质吸坐菇坐肌丫慨漫造滋嘱魏腻康磨襄梭谴咬艇才包才紊瞳膛捞吗搞眯蚤没釜妊坪碉馋霖与脯贮门角级梨篆欠痘枣晰畏姨烛佳斌杖寐砒哗侦信筹湖诡童睡惫惧储牢畴酚献史潭组宣赌盯伏认误冯慷办泻怂挞氛测健葱厄晶袋签咽邑翱浸啡辊厘盗寒焚窒在这里总结宏的使用方法欢迎补充1条件include如下CODE#ifndefMAIN_H_#defineMAIN_H_其它内容##ifdef_DEBUGprintf("thisdebuginfo\n");#endif如果没有定义_DEBUG宏的话那么上面那一行是不会编译进去的但是定义了_DEBUG后上面那行就会编译进去可以写个简单的程序测试CODE#include<>intmain(){#ifdef_DEBUGprintf("helloworld\n");#elseprintf("nodebug");#endifreturn0;}-#include<>#definePRINT_STR"你好DD"main(){printf(PRINT_STR);return0;}编译时会把PRINT_STR代替成"你好DD"以后想修改时就方便了另外也可以定义为函数#include<>#ifdef_DEBUG#defineA(x)a(x)#else#defineA(x)b(x)#endifinta(intx){returnx+1;}intb(intx){returnx+100;}intmain(){printf("A(10)valueis%d",A(10));return0;}[/code]其实也可以定义成#defineAa的但是定义成A(x)后只有A后面带一个(x)类型的编译器才会执行替换比较安全可以保证只替换函数而不替换变量第四个可变参数宏有些时候定义一个宏来代替某个函数但是这个函数是可变参数的话那就需要考虑办法了定义方法如下CODE#definePRINT(...)printf(__VA_ARGS__)#include<>intmain(){PRINT("%d%s%s",1,"吃饭了吗smileMM:)","\n");return0;}第五个宏组合也就是##和#的用法##是连接符号连接两个宏#是把名字代替成字符串如下CODE#defines5(a)supper_##a#include<>voidsupper_printf(constchar*a){printf("thisissuppe