Je suis, pour un autre problème, confronté à un problème de structurations de mes données. En assembleur, j'écrivais ceci :
DataSection MainMenu .even .word 2 .word ExecCfgFlagsMenu-PC_Table .word ExecCfgEVMenu-PC_Table .word Quit-PC_Table .asciz "Configure flags" .asciz "Configure environment variables" .asciz "Flags : AutoArc, OffSwitch," .asciz "GetKeySwitch, StatusError" .byte 0 .asciz "Variables : apd, start, home, temp," .asciz "args, fkey[n]" .byte 0
Ca représente en fait une structure :
- 2 + 1 offsets dans une table de saut
- 2 chaines "principales"
- 2 chaines commentaires
Le truc commode, c'est qu'un menu se suffisait à lui-même pour dire ce qu'il devait advenir, suivant qu'on sélectionnait une option ou l'autre (deux premiers offset), ou qu'on appuyait sur ESC (dernier offset dans la table de saut, pc-relative évidemment). Ca permet une profondeur infinie de menu sans écrire une ligne de code. Suffit de rajouter du texte et des labels.
Comment faire un truc similaire en C ?
Pour les chaines, pas de souci, je fais une structure de tableaux, ça devrait le faire. Par contre, pour rajouter à chaque élément de ma structure ce qui doit être exécuté, comment faire ?
j'imagine que si j'écris le nom de la fonction, ou un pointeur vers la fonction, je vais y arriver. Mais au fait, comment exécuter du code à un endroit dont on connait l'adresse ? Sans passer par asm() évidemment

Le top : comment faire pour avoir une table de relogement pc-relative pour sauter à la fonction qu'on veut ? Avec encore en plus le côté plus "bra" que "bsr" ?
Autre question, et peut-être la seule la vraie : Comment voir les choses avec un oeil Ciste et non assembleuriste ?
