Bonjour à tous,
je dois continuer à développer un projet C. Je suis donc en train d'étudier le code. Et j'ai rencontré un appel de fonction bien singulier.
La déclaration suivante :
où avg, h2, etc... sont des fonctions définies plus haut dans le fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 char *names[] = {"avg","h2","h3","p3","p5"}; void (*entry_point[])() = {avg, h2, h3, p3, p5};
Dans le reste du code, voici les deux seuls autres endroits où est appelé entry_point :
Ce que j'essaie de comprendre, c'est comment et où se fait l'appel des fonctions avg, h2... etc. En faisant une recherche sur "avg" par exemple, je ne tombe que sur la définition de la fonction elle-même. De plus avg admet 5 paramètres. Où sont-ils passés en paramètre ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 // On regarde quelle était la fonction précédemment choisie entry_point[numero] == pointeur_sur_fonction; //(...) // On met à jour le pointeur_sur_fonction pointeur_sur_fonction = (void *)entry_point[jn];
Merci pour votre aide ! Je précise que le programme marche correctement.
Guilhem.
Partager