Cast de puntero a funcion

Estado
No está abierto para más respuestas.

Saruman

Lanero Reconocido
Se unió
18 Jul 2002
Mensajes
425
Quisiera saber como es la sintaxis para realizar un cast de un puntero void a una funcion.
Supongamos que tengo una funcion cualquiera, guardo su direccion en un puntero, desde el cual pueda llamar a la funcion original. Creo que me explico mejor con un ejemplo.

Código:
#include <stdio.h>

void main()
{
  void *Funcion;
  int i;
  Funcion = (void *)prueba;

  // Esto deberia ejecutar la funcion prueba()
  i = ((/*cast de void a funcion*/) Funcion)(...);
  
};

int prueba(...)
{
  printf("Esto debe imprimirse\n");
};
Este ejemplo deberia ejecutar la funcion prueba(). Pero no se como hacer el cast.
Agradezco cualquier ayuda.
 

Saruman

Lanero Reconocido
Se unió
18 Jul 2002
Mensajes
425
Originalmente colocado por Krieg
i = ((int (*)()) Funcion)() ;
Gracias, funciona de maravilla. Ahora puedo eliminar la cochinada de funcion que tenia, que copiada la direccion de prueba a funcion, siendo este ultimo una funcion tambien. Ese metodo es mas elegante. ;)
 
Estado
No está abierto para más respuestas.
Arriba