#include #include #define TRUE 1 #define FALSE 0 int min(int a, int b) {return a > b ? b : a;} int max(int a, int b) {return a > b ? a : b;} int call_them(int (*func)(int, int), int a, int b) { return func(a, b); } int foo(int do_min) { int (*func) (int, int); if (do_min) func = min; else func = max; return call_them(func, 10, 20); } int main() { printf("%d\n", foo(FALSE)); return 0; }