
Zitat von
sast
Markus könntest du das mal bitte an einem konkreten Beispiel zeigen, was du meinst?
Naja, die enum-Variante ist einfach. Im wesentlichen dein Code, nur statt uint16_t strnum ein strnum_t str. Und dann eben
PHP-Code:
typedef enum {
str_info = 0,
str_space,
str_menu1,
...
} strnum_t
// Verwendung dann so:
get_str_from_flash(str_info, str);
Damit gewinnst du etwas mehr Übersichtlichkeit, hast aber immer noch die unnötige Indirektion strarray1->*str->Flash. Der direkte Weg wäre einfach, die Strings direkt mit sprechenden Namen zu versehen und dann zu referenzieren. Damit scheidet dann auch die Möglichkeit weg, versehentlich einen nicht existierenden String zu referenzieren.
PHP-Code:
const char str_info[] PROGMEM = "INFO allgemein";
const char str_space[] PROGMEM = " ";//14 Leerzeichen
const char str_menu1[] PROGMEM = "Menue 1";
...
// Verwendung, get_str_from_flash wird überflüssig
strcpy_P(str, &str_menu1);
mfG
Markus
Lesezeichen