typedef void (CCObject::SEL_MenuHandler)(CCObject)
#define menu_selector(_SELECTOR) (SEL_MenuHandler)(&_SELECTOR)
第一个疑惑是,为何类成员函数前取地址要加&,而一般函数直接用函数名即可?
第二个疑惑是,这里(SEL_MenuHandler)(&_SELECTOR)为何要用SEL_MenuHandler做强制转换,函数签名与函数指针类型匹配不就可以了么,为何要强制转换呢?
typedef void (CCObject::SEL_MenuHandler)(CCObject)
#define menu_selector(_SELECTOR) (SEL_MenuHandler)(&_SELECTOR)
第一个疑惑是,为何类成员函数前取地址要加&,而一般函数直接用函数名即可?
第二个疑惑是,这里(SEL_MenuHandler)(&_SELECTOR)为何要用SEL_MenuHandler做强制转换,函数签名与函数指针类型匹配不就可以了么,为何要强制转换呢?
我这个2000的程序换回答你吧,第一个,ide就把函数转换为取地址了。
第二个嘛,取个名好记好写一点而已。
普通函数名可以理解为函数指针常量,赋值给指针变量的时候加不加&都可以,C语言设计如此。
取类的成员函数需要通过类名获取。
#define定义了一个宏来提高程序可读性。
1楼你也就配拿2000了