#include <stdlib.h> #include <stdio.h> #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(TRUE)); return 0; }