-
Appel d'une fonction
Bonjour,
je souhaiterais réalisé une opération un peu particulière sur les fonctions.
Je dispose de deux fonctions :
void fonction1(void)
void fonction2(void)
J'aimerais réalisé une fonction fonction() qui soit soit fonction1 soit fonction2()
En quelque sorte, j'aimerais durant une étape d'initialisation alloué le pointeur de la fonction fonction() sur fonction1 ou fonction2.
Mais quand j'écris ca ca ne marche pas :
void Initialisation()
{
if(IsFonction1)
&fonction = &fonction1;
else
&fonction = &fonction2;
}
Ensuite je pourrais utiliser fonction() dans mon code qui va appeler fonction1 ou fonction2 en fonction de l'initialisation.
Est ce qu'il est possible de réaliser cette opération.
Merci
Est ce qu'il est possible de réaliser
-
Evidemment, avec le petit morceau de code que tu presentes, ca ne risque pas de marcher.
L'idee c'est d'avoir de definir un pointeur de fonction:
Code:
1 2
|
void (*pf)(void) = NULL; |
Auquel tu attribues la fonction que tu souhaites:
Et que tu utilises ensuite comme une fonction normale.
Note que les prototypes de function_1, _2, etc. doivent etre les memes avec cette methode.
-
Pas mieux que Dazumba faire des pointeurs de fonction