[résolu]Pointeurs sur structure, tableaux, Pointeurs de fonctions

Re bonjour,

J'ai profité des posts qui viennent d'être publiés sur ce forum pour modifier la fonction EXECUTER().

Auparavant selon les positions horizontales (Select_Menu0 variant de 0 à 2 et Hauteur variant de 0 à1 je faisait une sélection avec un switch(Select_Menu0) pour appeler la fonction adéquate.
Ce travail était fait dans la fonction EXECUTER().

Maintenant je déclare deux tableaux de pointeurs sur des fonctions, :

// libellés des menus :
char Phrase[16][16] ={"Men1*Men2*Men3*","Menua-Menb-Menc"};
// Déclarations des fonctions et pointeurs :
void ME1();void ME2();void ME3();
void MEA();void MEB();void MEC();
void (*pFonctionTab0[3])()={ME1,ME2,ME3};// tableau pour la ligne 0 de menu
void (*pFonctionTab1[3])()={MEA,MEB,MEC};//tableau pour la ligne 1 de menu

Et la fonction EXECUTER() est remplacée par la fonction P_EXECUTER()

// Appel de la fonction repérée par son pointeur
void P_EXECUTER()
  {if (Hauteur==0)
     pFonctionTab0[Select_Menu0]();
       else pFonctionTab1[Select_Menu0]();
   BUZZER(50);delay(500);
  }

Il me reste à éventuellement encore compacter cela en ne déclarant qu'un tableau de pointeurs de fonctions mais a deux dimensions, de ce fait je pense réduire P_EXECUTER() à une seule ligne

Ce code fonctionne pour un menu contenant deux lignes de 4 sous-menus; je viens de l'adapter pour publier sur le forum en deux lignes de 3 sous-menus de façon à ce qu'il soit cohérent avec les posts précédents.

Je considère cela juste comme un exercice me permettant de m'habituer à l'usage des pointeurs.

N'hésitez pas à signaler les éventuels erreurs, problèmes....

Serge .D