Cast de puntero a funcion

Estado
Cerrado para nuevas respuestas.

Saruman

Lanero Reconocido
18 Jul 2002
427
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.
 

Krieg

Moderador
Miembro del equipo
12 May 2003
5,210
i = ((int (*)()) Funcion)() ;


PD. Si, es complicado :)
 

Saruman

Lanero Reconocido
18 Jul 2002
427
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
Cerrado para nuevas respuestas.