debuthmx Posté(e) le 22 mai 2003 Partager Posté(e) le 22 mai 2003 Comment fait on en C ou en C++ pour passer une fonction comme argument d'une autre fonction? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Iokanaan Posté(e) le 22 mai 2003 Partager Posté(e) le 22 mai 2003 C'est pas pareil que pour les variables ? Genre tu imbriques. Lien vers le commentaire Partager sur d’autres sites More sharing options...
debuthmx Posté(e) le 22 mai 2003 Auteur Partager Posté(e) le 22 mai 2003 Tu as dejà codé en c++, parce que c'est tout sauf ce que tu viens de dire: il faut passer par des pointeurs Lien vers le commentaire Partager sur d’autres sites More sharing options...
Iokanaan Posté(e) le 22 mai 2003 Partager Posté(e) le 22 mai 2003 Tout comme le nom d'un tableau est <<un pointeur sur ce tableau>>, le langage C considère que le nom d'une fonction est <<un pointeur sur cette fonction>>. L'utilisation d'un pointeur sur une fonction permet de la passer comme argument à une autre fonction. Juste un exemple, soit la fonction: double integration (double (*f)(), double a, double b) /* */ /* but: integrer f entre a et b */ /* f est un pointeur sur une fonction */ /* qui retourne un double */ { ... for (.. ;.. ;..) x=x+ (*f) (a+k*h); /* appel de la fonction */ ... /* passee en argument */ ... } Il suffit de passer à integration le nom d'une fonction: ... /* prototype de la fonction cosinus */ double cos(double x); ... /* cos est un pointeur sur une fonction */ x=integration (cos, zero, pi_sur_2); ... */ Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.