在下面的代码中,为什么int
有效但无效float
?结果如下。
voidptr.c:
#include <stdio.h>
typedef void* (*Fn) ();
int Fun()
{
return 5;
}
float fFun()
{
return 5.0;
}
void callfun(Fn f)
{
printf ("%d \n", f());
}
void callffun(Fn f)
{
printf ("%f \n", f());
}
int main()
{
callfun(Fun); // works
callffun(fFun); // --> doesnt work ??
printf ("%f", fFun()); // works
return 0;
}
输出 :
5
0.000000
5.000000