在下面的代碼,爲什麼int
工作,但不是float
?結果如下。爲什麼返回float的函數不能與void * callback一起使用?
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
它並不真正的「工作」。你剛剛朝方向腳射擊,碰巧碰到昨晚酒醉已經麻木的腳趾。 –
「不起作用」是什麼意思? –
「不工作」是什麼意思?編譯時錯誤,運行時錯誤?請具體說明。 – OldProgrammer