Musis si tie polozky priradit na funkcie uz pri preklade. Pouzijes potom pointre na funkciu (ak to vobec PIC prekladac podporuje, moze to byt ale dost narocne na prevedenie potom v tom PIC)
http://www.safercode.com/blog/2008/11/25/generic-f unction-pointers-in-c-and-void.html
Napr.
typedef void (*FUNC_PTR)(void);
struct
{
char *nazov;
FUNC_PTR funkce;
}POLOZKA_STRUCT;
POLOZKA_STRUCT polozky[] =
{
{"menu1", funkce1},
{"menu2", funkce2}
}
void ZmacknuteMenu(int index_menu)
{
if(index_menu<(sizeof(polozky)/sizeof(POLOZKA_STRUCT))) //preistotu
polozky[index_menu].funkce(),
}
tak nejak (pisal som to teraz len tak zhlavy takze mozu tam byt syntakticke chyby apod, islo mi len o popis principu)