#include typedef int(*IntFn)(int, int); typedef char(*CharFn)(char, int); int add(int x, int y) { return x+y; } int applyIntFn(int x, int y, IntFn f) { printf("Callback coming\n"); fflush(stdout); return f(x, y); } int applyIntFnPure(int x, int y, IntFn f) { return f(x, y); } char applyCharFn(char c, int x, CharFn f) { return f(c, x); }