Posté(e) le 22 mai 200322 a Comment fait on en C ou en C++ pour passer une fonction comme argument d'une autre fonction?
Posté(e) le 22 mai 200322 a Auteur Tu as dejà codé en c++, parce que c'est tout sauf ce que tu viens de dire: il faut passer par des pointeurs
Posté(e) le 22 mai 200322 a 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); ... */
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.