j'ai écrit ma fonction de comparaisonAvertissement lors de l'utilisation qsort en C
int cmp(const int * a,const int * b)
{
if (*a==*b)
return 0;
else
if (*a < *b)
return -1;
else
return 1;
}
et j'ai ma déclaration
int cmp (const int * value1,const int * value2);
et j'appelle qsort dans mon programme comme si
qsort(currentCases,round,sizeof(int),cmp);
quand je le compile je reçois l'avertissement suivant
warning: passing argument 4 of ‘qsort’ from incompatible pointer type
/usr/include/stdlib.h:710: note: expected ‘__compar_fn_t’ but argument is of type ‘int
(*)(const int *, const int *)’
Le programme fonctionne très bien, donc mon seul souci est de savoir pourquoi il n'aime pas l'utilisation im cela?
http://stackoverflow.com/questions/2228695/what-are-the-parameters-in-this-c-qsort-function-call/2228754#2228754 –
Juste une suggestion pour une implémentation plus simple de votre cmp; plutôt que les trucs if/else, vous pouvez simplement utiliser la soustraction. – nategoose
@nategoose: Non, sauf si vous voulez introduire des bogues débordants d'entiers. –