Aller au contenu

Passer une fonction comme argument d'une autre fonction???


Messages recommandés

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);

... */

:chinois::google::love:

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...