所以,这是代码:
void pass(void(), int);
void hello(int);
int main(void)
{
pass(hello,0);
return 0;
}
void pass(void rfunc(),int a)
{
rfunc(a);
}
void hello(int a)
{
printf("%d",a);
}
“0”的输出按预期打印。但是,我收到了这些警告,我正在尝试修复这些警告。错误提示:
in function 'main':
warning: passing argument 1 of 'pass' from incompatible pointer type
如何修复此警告?
最佳答案
pass
的第一个参数需要一个 void (*)()
类型的函数指针,但您传入的是 void 类型的函数指针(*)(int)
。这是不兼容的类型。
更改 pass
的参数以接受正确的类型:
void pass(void(int), int);
...
void pass(void rfunc(int),int a)
{
...
关于c++ - 传递一个函数和一个整数的函数。警告 : passing argument of "" from incompatible pointer type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42865164/