#include #include int sub(int a, int b) { return a-b; } int add(int a, int b) { return a+b; } int main(int argc, char *argv[]) { // This is the declaration of a variable, op, which is a pointer to a function int (*op)(int, int); // allocates 8 bytes to hold a pointer to a function // that takes two ints and returns an int int x = 10; int y = 100; op = add; printf("(op <- add) => op(x, y) = %d\n", op(x, y)); // this is an invocation of the function // pointed at by op op = sub; printf("(op <- sub) => op(x, y) = %d\n", op(x, y)); return 0; }