cocos2d-x的各种回调函数

1       typedef void (CCObject::*SEL_SCHEDULE)(float);
2 typedef void (CCObject::*SEL_CallFunc)();
3 typedef void (CCObject::*SEL_CallFuncN)(CCNode*);
4 typedef void (CCObject::*SEL_CallFuncND)(CCNode*, void*);
5 typedef void (CCObject::*SEL_CallFuncO)(CCObject*);
6 typedef void (CCObject::*
SEL_MenuHandler)(CCObject*);
7 typedef void (CCObject::*SEL_EventHandler)(CCEvent*);
8 typedef int (CCObject::*SEL_Compare)(CCObject*);
9 #define schedule_selector(_SELECTOR) (SEL_SCHEDULE)(&_SELECTOR)
10 #define callfunc_selector(_SELECTOR) (SEL_CallFunc)(&_SELECTOR)
11 #define callfuncN_selector(_SELECTOR) (SEL_CallFuncN)(&_SELECTOR)
12 #define callfuncND_selector(_SELECTOR) (SEL_CallFuncND)(&_SELECTOR)
13 #define callfuncO_selector(_SELECTOR) (SEL_CallFuncO)(&_SELECTOR)
14 #define menu_selector(_SELECTOR) (SEL_MenuHandler)(&_SELECTOR)
15 #define event_selector(_SELECTOR) (SEL_EventHandler)(&_SELECTOR)
16 #define compare_selector(_SELECTOR) (SEL_Compare)(&_SELECTOR)

其实这些都是函数的指针,例如第一个和9拿出来

typedef void (CCObject::*SEL_SCHEDULE)(float);

#define schedule_selector(_SELECTOR) (SEL_SCHEDULE)(&_SELECTOR)

先看上面 顶一了一个 指向CCobject指针的指针,这个指针指向一个带一个float类型的参数的返回值为void的函数
接着下面的宏替换 当我们scedule_selector(xxxxxx);时
自动替换成  

 (SEL_SCHEDULE)(&_SELECTOR)

将我们传进来的_SELECTOR函数指针强制转换成    指向一个带一个float类型的参数的返回值为void的指针

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值