【发布时间】:2014-11-07 02:07:29
【问题描述】:
我正在尝试将方法强制转换为 void 指针,以便可以将其用作回调方法。
void* pVoidedFunc = &testmethod;
但我得到了错误:
error: invalid conversion from int (*)() to void*
方法是:
static int testmethod()
{
return 0;
}
如何将方法转换为 void 指针?
【问题讨论】:
-
为什么要将方法转换为 void 指针?
-
如果这是一个回调方法,那么将指针传递给回调方法应该有正确的签名,而不是使用通用的 void*。
-
你也想用什么来喂空 *?
-
你的函数指针真的需要一个 void * 吗?这真是一个糟糕的设计。如果回调是一个不带参数并返回 int 的函数,则应该这样声明。当然,调用回调的代码会将 void* 转换为指向不带参数并返回 int 的函数的指针。忽略所有的说教,你需要一个 (void *) 演员来修复错误。
标签: c++