cocos2D-x demo 的源码分析 #define ..##.. 的妙用.

深入理解Cocos2d-x中的宏定义与函数引用技巧
本文详细解析了Cocos2d-x中使用宏定义和函数引用的高效方法,通过实例展示了如何化繁为简地创建结构相似的不同函数,以及如何利用宏简化代码实现。

最近在看cocos2d-x 但不知道如何下手,于是先看一下他编译的完成的testcpp的源码.发现了下面一段程序

typedef CCLayer* (*NEWTESTFUNC)();
#define TESTLAYER_CREATE_FUNC(className) \
static CCLayer* create##className() \
{ return new className(); }

#define CF(className) create##className

#define 用的可以说出神入化了,这里主要考察了两点:
1.#define 的连接符 \

2#define...##.... 

其中##在define里表示连接的意思, TESTLAYER_CREATE_FUNC(test) 表示我创建了一个如下函数:

static CCLayer* createtest() 
{ 
    return new classtest(); 
}

然而下面又定义了一个对函数引用的宏 CF(className) ,在使用的时候我们直接CF(clsaaName)() 调用相应的函数即可。

思考一下这样写有什么好处? 应该是化繁为简,方便得创建结构相似不同函数名的函数。

 

 

   

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值