Pointeur sur une fonction

AmineTheGreat Messages postés 47 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 28 décembre 2010 - 23 avril 2008 à 11:28
cs_jfrancois Messages postés 482 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 5 décembre 2009 - 23 avril 2008 à 12:18
Bonjour,
J'ai déclarer un pointeur sur une fonction et je veux récuperer l'adresse de cette fonction comment faire?
int (*task1)( );
je veux mettre l'adresse dans une variable adress !

"Il n'y a pas de différence entre les êtres humains que par ce qu'ils font"

1 réponse

cs_jfrancois Messages postés 482 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 5 décembre 2009 2
23 avril 2008 à 12:18
Voilà un exemple d'utilisation de pointeur de fonction :

#include <stdio.h>

// --- Déclaration du nouveau type "fct" = pointeur
// --- sur des fonctions de type "void xxx(const char*)"
typedef void(*fct)(const char*);



void fonction1(const char* texte)
{
   printf("%s de fonction1\n",texte);
}



void fonction2(const char* texte)
{
   printf("%s de fonction2\n",texte);
}



int main(void)
{
   fonction1("appel direct");
   fct p = fonction1;
   p("appel indirect");



   fonction2("appel direct");
   p = fonction2;
   p("appel indirect");
   return 0;
}


Ce qui donne :

appel direct de fonction1
appel indirect de fonction1
appel direct de fonction2
appel indirect de fonction2

Dans votre cas :




typedef int(*task1)();
...
task1 adresse = nom_de_la_fonction;




Jean-François
0