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

2024-11-18 14:02:57
推荐回答(3个)
回答1:

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

例如第一个,这个函数的原型是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*);

回答2:

可能是用 typedef 定义“函数指针类型”。

回答3:

我只知道可以用来简化代码和定义自己的数据类型!