реклама на сайте
подробности

 
 
> инициализация строковых констант в PROGMEM, WinAVR
ARV
сообщение Jul 22 2010, 05:04
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



известен способ:
Код
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}
}
который выглядит громоздко и как-то некрасиво по сравнению с вариантом, когда массив размещается в ОЗУ:
Код
PROGMEM handler_t handler[] = {
    {"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}
}
чтобы не надо было отдельно определять строки в виде константных массивов? может, я в трех соснах заблудился?


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ARV
сообщение Jul 22 2010, 08:12
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



мда... smile.gif


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 23:10
Рейтинг@Mail.ru


Страница сгенерированна за 0.02958 секунд с 7
ELECTRONIX ©2004-2016