Bonjours,
Je cherche à comprendre la notion de "Callback" en C et à quoi elle sert.
J'ai fait une petite recheche dans la Faq et aussi dans le net mais j'arrive pas à trouver grand choses.
Pouvez vous m'aider?
Merci d'avance
Version imprimable
Bonjours,
Je cherche à comprendre la notion de "Callback" en C et à quoi elle sert.
J'ai fait une petite recheche dans la Faq et aussi dans le net mais j'arrive pas à trouver grand choses.
Pouvez vous m'aider?
Merci d'avance
En gros, cette notion (qui signifie plus ou moins "appel en retour") signifie que tu passes un pointeur de fonction A à une fonction B, et B appellera A au cours de son exécution.
Par exemple, la fonction standard qsort() prend un pointeur vers une fonction de comparaison, c'est un mécanisme de callback.
Pouvez vous m'aider à trouver un cours approfondi sur cette notion??
Malheureusement, je n'en connais aucun.
Les fonctions callback de comparaison sont parmi les plus simples et peut-être les plus utilisées. Tu devrais en comprendre le concept assez facilement si tu réécris qsort() ou bsearch().
Ensuite viennent les fonctions callback des interfaces graphiques, beaucoup plus compliquées (WNDPROC pour les interfaces graphiques Win32, signaux/slots pour Qt, etc.).
Les fonctions passées à la fonction signal() sont également des fonctions callbacks : elles sont spécifiées par le programme, mais jamais directement appelées. Voir cet exemple de la FAQ. Pour comprendre le fonctionnement des fonctions callbacks, il suffit juste de savoir utiliser les pointeurs de fonction et pour ça, il y a plein de tutoriels et de FAQs sur Developpez.
signal(), c'est encore plus compliqué, puisque tu as moins de contrôle sur quand la fonction sera appelée.
Pour qsort() et bsearch(), au moins tu sais que la fonction callback sera appelée (de 0 à N fois) uniquement pendant l'exécution de qsort()/bsearch()...