5
모든 함수가 동일한 반환 유형을 공유한다고 가정하면 빈 괄호로 선언 된 "일반"함수 포인터로 각 함수를 호출 할 수 있습니까 (인수를 지정하지 않으므로)? 정확히 그런 식으로pseudo-generic 함수 포인터로 다른 프로토 타입을 가진 함수를 호출 할 수 있습니까?
#include <stdio.h>
void fun1(void)
{
printf("fun1\n");
}
void fun2(int a)
{
printf("fun2: %d\n", a);
}
void fun3(int a, int b)
{
printf("fun3: %d %d\n", a, b);
}
int main(void)
{
void (*pf)(); // pseudo-generic function pointer
pf = fun1;
pf();
pf = fun2;
pf(0);
pf = fun3;
pf(1, 2);
return 0;
}
가능한 인수 유형이없는 함수 포인터? (http://stackoverflow.com/questions/20835534/function-pointer-without-arguments-types) –
흥미로운 질문입니다. "컴파일하고 예상대로 실행합니까?"와 같이 유효합니다. 예, "경고없이'-Wall' 컴파일로 작동합니까? 내 컴파일러에 예 :-) – Dilettant
네, 편집증 모드에서도 경고하지 않습니다'-Wall -Wextra -pedantic -Wconversion' by GCC 4.9 ... @Dilettant – alk