【发布时间】:2010-10-08 06:11:11
【问题描述】:
假设我有一个接受 void (*)(void*) 函数指针用作回调的函数:
void do_stuff(void (*callback_fp)(void*), void* callback_arg);
现在,如果我有这样的功能:
void my_callback_function(struct my_struct* arg);
我可以安全地做到这一点吗?
do_stuff((void (*)(void*)) &my_callback_function, NULL);
我查看了 this question 并查看了一些 C 标准,这些标准说您可以强制转换为“兼容函数指针”,但我找不到“兼容函数指针”含义的定义。
【问题讨论】:
-
我是个新手,但“void ()(void) 函数指针”是什么意思?它是一个指向接受 void* 作为参数并返回 void 的函数的指针吗
-
@Myke:
void (*func)(void *)表示func是一个指向具有诸如void foo(void *arg)之类的类型签名的函数的指针。所以是的,你是对的。
标签: c function-pointers