Go Down

Topic: appel de fonction (Read 170 times) previous topic - next topic

Zarb94

Bonjour,
Une question idiote, est-il possible d'appeler une fonction dont le nom est dans une variable et si oui, comment?
Merci

Alain46

Non
Pas possible en C

Par contre il est possible  d'appeler une fonction dont l'adresse est dans une variable, dans ce cas c'est un pointeur sur une fonction. De la même manière on peut définir un tableau de pointeurs de fonctions

Tableau de pointeurs de fonctions

D'autres exemples et tuto en tapant "pointeur sur fonction" dans un moteur de recherche

J-M-L

#2
Jan 21, 2018, 03:59 am Last Edit: Jan 21, 2018, 04:03 am by J-M-L
Effectivement le C ou C++ sont compilés et les noms des variables ou fonctions disparaissent dans le binaire final - ce n'est pas comme des langages interprétés ou à run time dynamique

Disons que si vous avez un nombre limité et connu de fonctions vous pourriez comparer la chaîne et appeler la bonne fonction
Code: [Select]
void appelerFonction(const char * name)
{
   if (!strcmp(name, "fonctionA")) return fonctionA();
   if (!strcmp(name, "fonctionB")) return fonctionB();
   if (!strcmp(name, "fonctionC")) return fonctionC();
}
mais comme vous le voyez c'est pas génial.
Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

Zarb94

Merci,
Par rapport à vos réponse,  Je pense utiliser les pointeurs de fonction. Je vai,me pencher dessus.

Merci.

Go Up