[C con Clase] cast con punteros a funciones

Matias V. fockewulffw44j en gmail.com
Jue Mayo 6 13:28:34 CEST 2010


Hola tengo la siguiente duda,

Supongamos que tengo la siguiente funcion

int prueba(void(*algo)(void*))
{
   int a=5;

   (*algo)(&a);
}

y por ejemplo esta otra

void ejemplo(int * b)
{
    printf ("%i",*b);
}

en el main invoco a prueba haciendo un cast:

int main()
{
  prueba( (void(*)(void*))ejemplo);
}

lo que no entiendo es por que todo funciona correctamente, es decir al hacer
el cast el argumento de ejemplo  (de acuerdo a lo que tengo entendido) se
convierte en un puntero void por lo cual el compilador me debería tirar
error al intenetar imprimir el contenido de una varible apuntada por un
puntero void, tal como ocurre en este ejemplo.

void funcion(void* asd)
{
   printf("%i",*asd)
}
int main()
{
   int a=5;
   funcion(&a);
}
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100506/dc9c083d/attachment.html>


Más información sobre la lista de distribución Cconclase