Forum Programmation.c++ Fonction Call Back : comment ca marche ?

Posté par  .
Étiquettes : aucune
0
13
août
2004
Salut les gens,

Y aurait-il une bonne âme pour m'expliquer (ou me renvoyer sur une URL, hein, je suis preneur aussi) comment ça marche les fonctions call back...
Google a été très peu loquace (en français tout du moins) sur ce point la.

Et surtout, comment en implémenter en C/C++.
  • # Tutorial

    Posté par  . Évalué à 4.

    http://www.function-pointer.org/callback.html#intro(...)

    Une bonne adresse pour comprendre les subtilités des pointeurs sur fonctions ;)
    • [^] # Re: Tutorial

      Posté par  . Évalué à 2.

      Merci bien, j'te pertinentise illico :)

      PS : marrant, pertinentise, il connaît le correcteur. Trop fort.
      • [^] # Re: Tutorial

        Posté par  . Évalué à 3.

        Je pertinentise de même :)

        Voici un exemple de la manière dont j'utilise les callbacks :

        Soit une application utilisant des plugins, et devant utiliser un type de donnée différent pour stocker les informations de chaque plugin. Comment réaliser ça sans définir tous les types de données en dur dans l'application principale ?
        Je code une fonction dans chaque plugin qui se charge de l'allocation et de l'initialisation du type de donnée.
        Quand je charge le plugin, je charge un pointeur vers cette fonction magique.
        Quand je dois allouer une strucuture pour un plugin, je passe la fonction magique appropriée à la fonction d'allocation globale.
        Ainsi, mon serveur manipule toutes les données en aveugle :)
  • # Vulgarisation

    Posté par  (site web personnel) . Évalué à 2.

    comment ça marche les fonctions call back

    En gtk les callback servent, par exemple, a rattacher une fonction a un bouton lorsque celui ci est pressé.

    ainsi (vulgarisation):

    on_bouton_click_go_to(btn_click());

    {...}

    btn_click()
    {
    //add your code here
    }


    se définirait par une fonction genre (approximatif) :

    void on_bouton_click_go_to(void *f())
    {
    f();
    }

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.