아래 코드에서 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