#include int times2(int x) { return x * 2; } int times3(int x) { return x * 3; } typedef int (*operation_function)(int); int doit(int num, operation_function func) { return func(num); } int main(int argc, char** argv) { fprintf(stdout, "double %d\n", doit(5, times2)); fprintf(stdout, "triple %d\n", doit(5, times3)); return 0; }