C : Fonction retournant une autre fonction
Sara426
Messages postés
782
Statut
Membre
-
Char Snipeur Messages postés 10112 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 10112 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je programme en C (pas C++ ni C#).
Je voudrais créer une fonction qui retourne une autre fonction mais je ne sais pas quoi écrire dans le return.
Par exemple :
Est-ce que c'est juste ou pas ?
Cordialement.
Sara.
Je programme en C (pas C++ ni C#).
Je voudrais créer une fonction qui retourne une autre fonction mais je ne sais pas quoi écrire dans le return.
Par exemple :
int charCompare(Char c1, Char c2){
...
}
Comparator getComparator(Datatype type){
if(type==CHAR){
return int (*charCompare)(Char c1, Char c2);
}
...
}
Est-ce que c'est juste ou pas ?
Cordialement.
Sara.
2 réponses
Salut.
Le plus simple est sans doute de passer par un typedef :
un bon court : http://www.newty.de/fpt/zip/f_fpt.pdf
Voir en particulier la section 2.7. bonne chance.
La vrai soumission c'est quand les esclaves s'inquiètent du cours du coton.
Char Snipeur
Le plus simple est sans doute de passer par un typedef :
typedef type_retour (*fonction1) (types_parametre) ;
fonction1 getComparator(datatype D)
{
...
return charCompare;
}
un bon court : http://www.newty.de/fpt/zip/f_fpt.pdf
Voir en particulier la section 2.7. bonne chance.
La vrai soumission c'est quand les esclaves s'inquiètent du cours du coton.
Char Snipeur
Vu la signature de ta méthode getComparator, je dirais que tu dois retourner un Comparator ;)
Moi pour le qsort je fais comme ceci si ça peut t'aider :
Moi pour le qsort je fais comme ceci si ça peut t'aider :
typedef int (*cmpfct)(const void*, const void*);
int compare(Token *a, Token *b)
{
if (a->num == b->num)
{
return 0;
}
return a->num - b->num;
}
int main(int argc, const char ** argv)
{
Tokens t1[10];
/* Remplissage du tableau */
qsort(t1, 10, sizeof(Token), (cmpfct) compare);
}