1 / 11
文档名称:

宏的使用方法.doc

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

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

分享

预览

宏的使用方法.doc

上传人:drp539605 2019/2/26 文件大小: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