Functions are just locations in memory.
Pointers are just locations in memory.
An array of function pointers can be a dispatch table.
#include <stdio.h>
int square( int n ) {
return n * n;
}
int cube( int n ) {
return n * n * n;
}
int main( void ) {
int (*func)(int);
func = square;
printf( "Executing func at %p, returns %d\n", (void *)func, func(3) );
func = cube;
printf( "Executing func at %p, returns %d\n", (void *)func, func(3) );
return 0;
}
Executing func at 0x1f46, returns 9 Executing func at 0x1f55, returns 27TOC | Prev | Next