Salut,
Je dois appeler differentes fonctions dont le nom depend d'un parametre que l'utilisateur me fournit en entree. En l'occurence:
- si l'utilisateur me donne la chaine "f1", je devrais appeler la fonction toto_f1
- si l'utilisateur me donne la chaine "f2", je devrais appeler la fonction toto_f2
- etc.
Je pensais faire une map entre les arguments possible ("f1", "f2",...) et le nom des fonctions a appeler (toto_f1, toto_f2, ...) et ensuite utiliser un pointeur de fonction qui s'initialiserait avec le bon nom de fonction. Mon probleme c'est que je ne sais pas comment faire. J'ai fait quelques tests simples pour voir:
Code :
- void toto_f1(int i)
- {
- ...
- }
- void (*fptr)(int);
- char str[10];
- strcat(str,"toto" );
- strcat(str,"f1" );
- printf("%s\n",str);
- fptr = (*str);
|
Bien sur ca ne marche pas puisque j'essaye de convertir un char * en une fonction...
Je ne sais pas comment faire pour dire au compilo que je veux atteindre la fonction qui correspond au nom que je lui donne.
Pouvez-vous m'aider?
Merci