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 :
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};
où avg, h2, etc... sont des fonctions définies plus haut dans le fichier.

Dans le reste du code, voici les deux seuls autres endroits où est appelé entry_point :
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];
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 ?

Merci pour votre aide ! Je précise que le programme marche correctement.

Guilhem.