`
coolerbaosi
  • 浏览: 727680 次
文章分类
社区版块
存档分类
最新评论

C语言宏的妙用

 
阅读更多

第一部分:基础知识

记住:#define的本质是替换

利器:使用"#"和"##"

#的作用把宏参数变为一个字符串

##的作用把连接其两边的字符形成一个新的参数


#define str(s) #s
#define cons(a,b) int(a##e##b)

int main()
{
printf(str(vck)); // 输出字符串"vck"
printf("%d/n", cons(2,3)); // 2e3 输出:2000
return 0;
}


第二部分:实例解析

cocos2d-x宏的应用:

#define CC_PROPERTY_PASS_BY_REF(varType, varName, funName)\

protected: varType varName;\

public: virtual const varType& get##funName(void);\

public: virtual void set##funName(const varType& var);


这是一个通过引用传值成员变量定义的快捷方式,这里面用到了##特殊符号,对于get##funName,前面的get是死的,后面的funName是活的,通过##能将此二者联系起来。

注意,如果中间去掉##符号的话,就不能形成一个活的函数名。


常用网络协议注册宏:

#define ADD_CMD(cmdType, varType)\

static varType _##varType;\

_ct_reg_cmd(cmdType, &_##varType);

这里定义了一个静态的_##varType,将其注册到协议查询表中,使用如下

ADD_CMD(CMD_LOGIN,LoginCmd);

参数1是协议号,参数二是协议对应的类名,仅此一行代码,即可解决注册的所有工作,方便吧。
分享到:
评论

相关推荐

    C语言之详解#ifdef等宏及妙用

    C语言之详解#ifdef等宏及妙用C语言之详解#ifdef等宏及妙用C语言之详解#ifdef等宏及妙用

    c语言#ifdef等宏及妙用

    描述了在C语言中的#ifdef等宏及妙用

    c语言难点分析整理,C语言

    17. C语言宏定义技巧 89 18. C语言实现动态数组 100 19. C语言笔试-运算符和表达式 104 20. C语言编程准则之稳定篇 107 21. C语言编程常见问题分析 108 22. C语言编程易犯毛病集合 112 23. C语言缺陷与陷阱(笔记) ...

    高级C语言详解

    17. C语言宏定义技巧 89 18. C语言实现动态数组 100 19. C语言笔试-运算符和表达式 104 20. C语言编程准则之稳定篇 107 21. C语言编程常见问题分析 108 22. C语言编程易犯毛病集合 112 23. C语言缺陷与陷阱(笔记) ...

    史上最强的C语言资料

    17. C语言宏定义技巧 89 18. C语言实现动态数组 100 19. C语言笔试-运算符和表达式 104 20. C语言编程准则之稳定篇 107 21. C语言编程常见问题分析 108 22. C语言编程易犯毛病集合 112 23. C语言缺陷与陷阱(笔记) ...

    C语言难点分析整理

    17. C语言宏定义技巧 89 18. C语言实现动态数组 100 19. C语言笔试-运算符和表达式 104 20. C语言编程准则之稳定篇 107 21. C语言编程常见问题分析 108 22. C语言编程易犯毛病集合 112 23. C语言缺陷与陷阱(笔记) ...

    C 语言函数宏封装妙招C 语言函数宏封装妙招 1. 函数宏介绍 函数宏,即包含多条语句的宏定义,其通常为某一被频繁调用的功能的

    C 语言函数宏封装妙招 1. 函数宏介绍 函数宏,即包含多条语句的宏定义,其通常为某一被频繁调用的功能的语句封装,且不想通过函数方式封装来降低额外的弹栈压栈开销。 函数宏本质上为宏,可以直接进行定义,例如:...

    c语言_ifdef等宏及妙用

    以下全部代码的执行环境为VC++ 6.0。

    高级C语言.PDF

    C语言宏定义技巧 ........................................................................................................................ 80 18. C语言实现动态数组 ........................................

    免费下载:C语言难点分析整理.doc

    17. C语言宏定义技巧 89 18. C语言实现动态数组 100 19. C语言笔试-运算符和表达式 104 20. C语言编程准则之稳定篇 107 21. C语言编程常见问题分析 108 22. C语言编程易犯毛病集合 112 23. C语言缺陷与陷阱(笔记) ...

    高级C语言 C 语言编程要点

    17. C语言宏定义技巧 89 18. C语言实现动态数组 100 19. C语言笔试-运算符和表达式 104 20. C语言编程准则之稳定篇 107 21. C语言编程常见问题分析 108 22. C语言编程易犯毛病集合 112 23. C语言缺陷与陷阱(笔记) ...

    高级进阶c语言教程..doc

    17. C语言宏定义技巧 89 18. C语言实现动态数组 100 19. C语言笔试-运算符和表达式 104 20. C语言编程准则之稳定篇 107 21. C语言编程常见问题分析 108 22. C语言编程易犯毛病集合 112 23. C语言缺陷与陷阱(笔记) ...

    C语言难点分析整理.doc

    17. C语言宏定义技巧 89 18. C语言实现动态数组 100 19. C语言笔试-运算符和表达式 104 20. C语言编程准则之稳定篇 107 21. C语言编程常见问题分析 108 22. C语言编程易犯毛病集合 112 23. C语言缺陷与陷阱...

    C语言中宏定义的妙用方法

    今天小编就为大家分享一篇关于C语言中宏定义的妙用方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    VC中预处理指令与宏定义的妙用

    预处理和宏定义是C语言的一个强大工具,使用它们可以进行简单的源代码控制,版本控制,预警或者完成一些特殊的功能。

Global site tag (gtag.js) - Google Analytics