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

最近看一个程序,里面有一些typedef不懂,因此来求教下高人,这里就放些例子typedefvoid(*post_sync_t)(CO_Data*);typedefuin... 最近看一个程序,里面有一些typedef不懂,因此来求教下高人,这里就放些例子
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);
展开
 我来答
德克and德华

推荐于2018-05-10 · TA获得超过2650个赞
知道小有建树答主
回答量:1207
采纳率:100%
帮助的人:631万
展开全部
这些都是为一些“函数指针”类型定义一个别名,因为函数指针的类型通常十分长,写起来麻烦。

例如第一个,这个函数的原型是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*);
above霜天之上
2013-03-20
知道答主
回答量:25
采纳率:0%
帮助的人:17.6万
展开全部
可能是用 typedef 定义“函数指针类型”。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
恋馨无悔
2013-03-20 · 超过11用户采纳过TA的回答
知道答主
回答量:38
采纳率:0%
帮助的人:28.2万
展开全部
我只知道可以用来简化代码和定义自己的数据类型!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式