Bonjour,
Je travaille sur un µC, j'ai donc deux zones mémoires pour le stockage de mes données : la ROM et la RAM.
J'ai des éléments qui sont constitués
- nom de l'élément : type string
- description de l'élément : type string
- pointeur de fonction associé a l'élément
donc j'ai créé ma structure comme ceci:
Declaration de mon type pointeur de fonction TYPE_FUNC_VOIDVOID :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 typedef struct _structElement { rom char *eltName; rom char *eltDesc; TYPE_FUNC_VOIDVOID *ptr_action; } structElement;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 typedef void TYPE_FUNC_VOIDVOID(void); // fonction de type : void toto(void)
Donc voici comment je déclare un élément :
la liste de tous mes elements :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 rom const structElement elt1 = { "ma commande1" , "ma description1", toto()}; rom const structElement elt2 = { "ma commande2" , "ma description2", tutu()}; ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 rom structElement *rom tabElt[] = {&elt1, &elt2, ...}
Donc pour lancer la commande de l'element 0, je fais :
=> pas encore testé
Code : Sélectionner tout - Visualiser dans une fenêtre à part (*tabElt[0]->ptr_action)();
Mon but est d'avoir un tableau qui est composé de ma liste de commande et qu'il soit facile de modifier/ajouter un élément => toutes ces données doivent être stockées en ROM
=> est-ce que vous auriez fait comme ça ?
=> j'ai un doute sur le positionnement des attributs "rom" et "const"...
Partager