Buenas, tengo una duda con este código que creo que esta mal:
(https://k60.kn3.net/5/0/5/3/2/3/65A.png)
No tendría que ser:
(int (*)(viod *, void *))=(numeric ? numcmp:strcmp));
No, está bien tal y como muestra el código.
(int (*) (void *, void *))
es un cast sobre la función devuelta por (numeric ? numcmp : strcmp)
haa, el cast seria porque las funciones tienen como argumentos punteros a char y el puntero a la función espera punteros a void ¿no?. es decir ¿los argumentos de las funciones que son punteros a char se convierten a punteros a void?¿cuando se vuelven a convertir en punteros char?
Cita de: fafafa01 en 18 Diciembre 2016, 02:04 AM
haa, el cast seria porque las funciones tienen como argumentos punteros a char y el puntero a la función espera punteros a void ¿no?. es decir ¿los argumentos de las funciones que son punteros a char se convierten a punteros a void?¿cuando se vuelven a convertir en punteros char?
La función pide como parámetro una función con parámetros void*, y eso es lo que le das.
Si alguien transforma los void* a char*, ese es la función qsort internamente.