Bonjour,
J'ai besoin d'implémenter une fonction de rappel (callback function) qui prend en paramètre un pointeur de fonction qui retourne une valeur et prend un paramètre en argument. Hors je ne sais pas à l'avance quel type de paramètre (ni leur nombre) cette fonction va avoir, mais je connais la valeur qui sera toujours retournée.
Ainsi ceci fonctionne:
Hors cela nécessite de connaitre à l'avance le type et nombre d'argument des fonctions qui seront passées en argument.. et je cherche à utiliser quelque chose de plus générique , comme le ferait un truc dans le genre de mon exemple ci-dessous qui évidement de fonctionne pas:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 uint16_t fonctionA(uint16_t paramA) { return paramA; } uint16_t fonctionAppellante(uint16_t (*fonctionCalled)(uint16_t),uint16_t param) { uint16_t resultat; resultat = fonctionCalled(param); return resultat; } utilisation dans le programme: uint16_t var=10; result=fonctionAppellante(fonctionA,var);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 uint16_t fonctionA(uint16_t paramA) { return paramA; } uint16_t fonctionAppellante(uint16_t (*fonctionCalled)()) { uint16_t resultat; resultat = fonctionCalled(); return resultat; } utilisation dans le programme: uint16_t var=10; result=fonctionAppellante(fonctionA(var));
est ce que quelqu'un a une idée?
Merci d'avance.
Partager