ReAl 0 2 ноября, 2010 Опубликовано 2 ноября, 2010 · Жалоба +1 Только я подобные макросы стараюсь называть со словом CASE, например, CASE_MSG, CASE_STATUS_STR и т.п. DEF — это для определений строк/структур для обращения к ним из разных мест по имени. Вроде и непринципиально, но в итоге читабельность повышает. Для enum часто бывает так #define CASE_ENUM_STR(a) case a: return PSTR( #a ) typedef enum { ok, packet_error, invalid_command } status_t; const prog_char * status_str(status_t status) { switch(status) { CASE_ENUM_STR(ok); CASE_ENUM_STR(packet_error); CASE_ENUM_STR(invalid_command); } } И потом где-то, например log_printf( PSTR("Operation complete, %S\n"), status_str(status) ); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
бомж 0 23 января, 2011 Опубликовано 23 января, 2011 (изменено) · Жалоба ... Вот что-то не получается объявить массив строк констант. Сейчас эт осделано так: ... А как всё тоже самое, только не создавая для каждой строки отдельную константу? Как бы всё внести под скобки? У меня получилось вот так: #define flash __attribute__((__progmem__)) char* LangStrings[][3] flash = { /* Englisch Deutsch Le franзais*/ {"Error:", "Fehler:", "Erreur:"}, {" OK", " IO", " OK"}, {"Please wait", "Bitte warten", "attendre"} } Изменено 23 января, 2011 пользователем бомж Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться