关于c语言的typedef高级用法 typedef void (*post_sync_t)(CO_Data*)

转自:https://zhidao.baidu.com/question/533823738.html

typedef void (*post_sync_t)(CO_Data*);
typedef uint32 (*ODCallback_t)(CO_Data* d, const indextable *, UNS8 bSubindex);
typedef const indextable * (*scanIndexOD_t)(UNS16 wIndex, UNS32 * errorCode, ODCallback_t **Callback);

 

这些都是为一些“函数指针”类型定义一个别名,因为函数指针的类型通常十分长,写起来麻烦。

例如第一个,这个函数的原型是void f(CO_Data*);,
经过了typedef void (*post_sync_t)(CO_Data*);后,post_sync_t就是f类型函数的指针的类型别名。

这时你可以这样定义一个变量:post_sync_t p;,p就是一个指向f类型函数的指针。
可以这样给p赋值,p=&f。

如果你不typedef的话,定义p时你就得这样写:void (*p)(CO_Data*); 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值