可能重复:
void 指针:C 和 C++ 之间的区别
您好我有以下功能:
void task2(int a)
{
printf(" Task 2 running..\n");
sleep(2);
printf(" Task 2 exiting..\n");
}
thpool_add_work(threadpool, (void*)task2, (void*)a);
int thpool_add_work(thpool_t* tp_p, void *(*function_p)(void*), void* arg_p)
{
// some code here
}
上面的代码在 C 中运行良好,但不能在 C++ 中编译。我收到以下错误:
error: invalid conversion from ‘void*’ to ‘void* (*)(void*)’
error: initializing argument 2 of ‘int thpool_add_work(thpool_t*, void* (*)(void*), void*)’
我无法弄清楚这个错误的原因。知道为什么当我将文件扩展名更改为 CPP 并编译时会出现此错误吗?