j'aimerai bein avoir une definition completet et simple d'une callback (fonctionnment ) ???
et je voudrai savoir si ilest possible dans un programme a base de callaback de refaire le meme programme(qui fait la meme chose) sans callback??
merci
j'aimerai bein avoir une definition completet et simple d'une callback (fonctionnment ) ???
et je voudrai savoir si ilest possible dans un programme a base de callaback de refaire le meme programme(qui fait la meme chose) sans callback??
merci
avec callback :
sans callback:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 #include <stdio.h> #include <stdlib.h> static void *ptr = NULL; static void my_free (void) { free (ptr); } int main (void) { ptr = malloc (BUFSIZ); atexit (my_free); /* <= callback */ if (ptr != NULL) { printf ("ptr = %p\n", ptr); } return 0; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 #include <stdio.h> #include <stdlib.h> static void *ptr = NULL; static void my_free (void) { free (ptr); } int main (void) { ptr = malloc (BUFSIZ); if (ptr != NULL) { printf ("ptr = %p\n", ptr); } my_free (); /* <= appel explicite */ return 0; }
dit moi uniquement si j'ai bien compris??? le programme 1 s'exécute il arrive e atexit (my_free); il enregistre une callaback (une adresse une donnée ou un appelle a une fonction je ne comprend ce qu'il fait sur ce point) il continue a exécuté le programme il fait le print puis il revient a la callback
Bonjour,
dans le programme 1,
-on fait une allocation
-on enregistre un callback (un pointeur sur fonction) qui sera appelé par le systeme a la termisaison du programme
-le printf
-fin du programme detecté
-le systeme appelle le callback
-fin du programme
Grosso merdo un callback c'est l enregistrement de la l adresse d une sequence d instruction dont l execution est declenchée plus tard, sur un evenement precis.
ben merci pour l'explication la j'ai une bonne idée sur son fonctionnement je te remercie beaucoup, je vais testé le tous et je te tien au courant thanks
Comment cela se passe en interne ? y a t'il une table avec les adresses des fonctions callback ? Comment créer des callback soit même ? j ai vu le mot clef callback dans un source mais il me semble que c'était avec l'API win32.
En fait les callback sont principalement utiliser pour le traitements en sortie (mais cela doit utiliser les signaux je pense) ou dans les événements (par exemple dans une interface graphique) comme le pattern observer ?
« call back » signifie littéralement « rappel ». C'est juste un concept.
Concrètement, ça consiste à passer la main à une routine tierce, en lui passant en argument l'adresse d'une de tes fonctions, pour qu'elle puisse ensuite, elle, l'appeler quand elle en a besoin.
Par exemple, les handlers de signaux sont généralement des fonctions de callback.
Dans un autre domaine, quand tu fais une interface graphique, tu crées tous tes éléments (fenêtres, boutons, etc.) et tu associes à chacun une de tes fonctions pour qu'une action leur corresponde. Une fois que tu as terminé, tu passes la main au système (en entrant généralement dans une boucle principale) qui la garde pendant toute la durée de la session, et qui s'occupe de suivre les mouvements de l'utilisateur. Quand celui-ci clique sur un bouton, le système rappelle la fonction que tu lui as passée.
Partager