f(int a) { printf("%d\n",a); } g(int b, int (*func)(int)) { (*func)(b); } h(int b, int func(int)) { func(b); } main() { int (*fp)(); fp = f; (*fp)(1); g(2,fp); g(3,f); h(4,fp); h(5,f); }