debuthmx Posted May 22, 2003 Share Posted May 22, 2003 Comment fait on en C ou en C++ pour passer une fonction comme argument d'une autre fonction? Link to comment Share on other sites More sharing options...
Iokanaan Posted May 22, 2003 Share Posted May 22, 2003 C'est pas pareil que pour les variables ? Genre tu imbriques. Link to comment Share on other sites More sharing options...
debuthmx Posted May 22, 2003 Author Share Posted May 22, 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 Link to comment Share on other sites More sharing options...
Iokanaan Posted May 22, 2003 Share Posted May 22, 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); ... */ Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.