Код
typedef void (*cmd_handler)(char*);
typedef struct {
char *cmd;
cmd_handler handler;
} handler_t;
PROGMEM char cmd1[] = "item 1";
PROGMEM char cmd1[] = "item 2";
PROGMEM handler_t handler[] = {
{cmd1, cmd_run},
{cmd2, cmd_stop}
}
который выглядит громоздко и как-то некрасиво по сравнению с вариантом, когда массив размещается в ОЗУ:typedef struct {
char *cmd;
cmd_handler handler;
} handler_t;
PROGMEM char cmd1[] = "item 1";
PROGMEM char cmd1[] = "item 2";
PROGMEM handler_t handler[] = {
{cmd1, cmd_run},
{cmd2, cmd_stop}
}
Код
PROGMEM handler_t handler[] = {
{"item 1", cmd_run},
{"item 2", cmd_stop}
}
{"item 1", cmd_run},
{"item 2", cmd_stop}
}
неужели нет такого же или почти такого же элегантного способа описания изначального значения массива во flash? ну что-то типа
Код
PROGMEM handler_t handler[] = {
{some_macros("item 1"), cmd_run},
{some_macros("item 2"), cmd_stop}
}
чтобы не надо было отдельно определять строки в виде константных массивов? может, я в трех соснах заблудился?
{some_macros("item 1"), cmd_run},
{some_macros("item 2"), cmd_stop}
}