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:
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;
Declaration de mon type pointeur de fonction TYPE_FUNC_VOIDVOID :
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 :
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()};
...
la liste de tous mes elements :
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
(*tabElt[0]->ptr_action)();
=> pas encore testé



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"...