7.13 Punteros
a funciones
Un
puntero puede apuntar a código. La declaración es similar a esta:
void
(*ptr_fun) (int,int);
En
este caso se está declarando una variable,
ptr_fun,
que apunta a una función “void” que admite dos
parámetros enteros.
Para
tomar la dirección de una función, se escribe su nombre sin
paréntesis ni parámetros.
Para
llamar a una función apuntada por un puntero, se usa el nombre del
puntero como si fuera una función.
int suma (int a, int b)
{
return a+b;
}
int resta (int a, int b)
{
return a-b;
}
// declaramos un puntero a funciones con dos parámetros
// enteros que devuelven un entero
int (*funcion) (int,int);
{
...
funcion = suma; // ‘funcion’ apunta a ‘suma’
x = funcion(4,3); // x=suma(4,3)
funcion = resta; // ‘funcion’ apunta a ‘resta’
x = funcion(4,3); // x=resta(4,3)
}