|
|
|
|
Salut,
int (*p_fontion) (char bidule) Tu saisis? (*p_fonction) est entre parenthèses pour signifier que c'est un pointeur, c'est à bien distinguer d'un vraie fonction qui retournera un pointeur: int *p_fonction(char bidule) La j'ai déclaré une vraie fonction qui retournera un pointeur d'entier. Donc il faut bien mettre l'opérateur * et le nom du pointeur entre parenthèses. Ceci dit, pour compliquer les choses, si tu veux que ton pointeur de fonction retourne un pointeur d'entier ce sera: (int *) (*p_fonction)(char bidule) Maintenant si tu veux faire pointer l'adresse d'une fonction vers ton pointeur (je garde le pointeur du premier exemple), eh bien prenons une vraie fonction (même type, même type et nombre de paramètre): int machin(char truc); //Puis le pointeur int (*p_fontion) (char bidule); //Et on pointe: p_fonction = machin; //Le nom d'une fonction représente son adresse |
Oups, je me rattrape vite fait, les arguments des pointeurs de fonction n'ont pas de nom, juste un type, donc notre pointeur de tout à l'heure sera:
int (*bidule) (char) Et l'adresse d'une fonction, ce n'est pas juste son nom mais il faut aussi utiliser l'opérateur & Donc l'exemple de tout à l'heure corrigé ça donne: int machin(char truc); //Puis le pointeur int (*p_fonction) (char); //Et on pointe: p_fonction = &machin; /*Le nom d'une fonction avec & devant représente son adresse*/ http://casteyde.christian.free.fr/online/cours_cpp/x2102.html |
Merci bien ça m'aidera dans le dévelopement de mon programme
|