Это то, что позволяют делать указатели на функции.
int max(int v1, int v2) { return (v1 > v2) ? v1 : v2; }
int min(int v1, int v2) { return (v1 < v2) ? v1 : v2; }
int add(int v1, int v2) { return v1 + v2; }
int (*function)(int, int) = add;
int x = function(1, 3); // x == 4
function = min;
int y = function(1, 3); // x == 1
И т. Д.
Вы также можете получить указатели на функции-члены в C ++;нотация несколько иная.
Вы можете увидеть код, вызывающий функции через указатели на функции, использующие нотацию:
function = max;
int z = (*function)(1, 3); // x == 3
Это старомодный, предстандартный C. Но это ясно дает понятьчто используется указатель на функцию (так что я все еще люблю его и часто его использую).