El paso a paso o código que verás en este artículo es la resolución más sencilla y válida que encontramos a tu duda o dilema.
Solución:
Puede hacer lo siguiente: suponga que tiene su función A, B y C de la siguiente manera:
bool A()
.....
bool B()
.....
bool C()
.....
Ahora en alguna otra función, digamos en main:
int main()
bool (*choice) ();
// now if there is if-else statement for making "choice" to
// point at a particular function then proceed as following
if ( x == 1 )
choice = A;
else if ( x == 2 )
choice = B;
else
choice = C;
if(choice())
printf("Successn");
else
printf("Failuren");
.........
.........
Recuerde que este es un ejemplo de puntero de función. hay varios otros métodos y para los cuales debe aprender claramente el puntero de función.
Declare su puntero de función de esta manera:
bool (*f)();
f = A;
f();
Creo que su pregunta ya ha sido respondida más que adecuadamente, pero podría ser útil señalar explícitamente que, dado un puntero de función
void (*pf)(int foo, int bar);
las dos llamadas
pf(1, 0);
(*pf)(1, 0);
son exactamente equivalentes en todos los sentidos por definición. La elección de cuál usar depende de usted, aunque es una buena idea ser constante. Durante mucho tiempo preferí (*pf)(1, 0)
porque me pareció que reflejaba mejor el tipo de pf
sin embargo, en los últimos años he cambiado a pf(1, 0)
.
Si te gusta este mundo, tienes la habilidad dejar un tutorial acerca de qué le añadirías a este enunciado.