Saltar al contenido

¿Cómo puedo llamar a una función usando un puntero de función?

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 pfsin 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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *