prototype de fonction utilisant une fonction sans pointeur

Mon instructeur a mentionné l’utilisation de la fonction comme paramètre dans une autre fonction. (Je ne parle pas d’utiliser des pointeurs. Est-ce possible? Je montre ci-dessous) Je ne comprends pas ce qu’il a fait. Quelqu’un peut-il expliquer avec des exemples? Merci à tous d’avoir apprécié les réponses.

utiliser le style c’est:

int test(double abc(double)){ // bla bla } 

la fonction est:

 double abc(double n){ // function main } 

Les exemples sont écrits par moi, je ne suis pas sûr qu’ils aient raison.

Cette déclaration de fonction:

 int test(double abc(double)) { // bla bla } 

est équivalent à:

 int test(double (*abc)(double)) { // bla bla } 

Le paramètre abc est un paramètre de type pointeur de fonction ( double (*)(double)) ).

Pour la référence standard C:

(C99, 6.7.5.3p8) “La déclaration d’un paramètre en tant que” type de retour de fonction “doit être réglée sur” indicateur de type de retour de fonction “, comme indiqué au 6.3.2.1.”

si vous utilisez un pointeur, vous pouvez appeler la fonction ultérieurement dans le test de fonction.

 typedef double (*func_type)(double); int test(func_type func) { // bla bla cout << func(3); } // 2 call test(double_func) 

Si vous voulez appeler la fonction avant d'appeler test, définissez simplement:

 int test(double) { // bla bla cout << double; } // 2 call test(double_fun(2.0)); 

le bon choix dépend de vos intentions