我不明白为什么以下代码会产生警告:
int func(double a, int b, char c)
{
return 0;
}
int main()
{
int(*myPointer)() = func;
return 0;
}
我认为在C语言中,一个没有参数列表的函数意味着这个函数可以接收未知数量的参数。func4恰好接收了3个参数。那么为什么它与myPointer不兼容?
特别令人困惑的是,下面的代码编译时没有警告:
void boo()
{
return;
}
int main()
{
int(*pointerDude)(double) = boo;
return 0;
}
发生了什么事?