Moin Ceos
Ist doch mal schön zu hören, dass ich nicht der Einzige bin, der nach diversen Regeln arbeiten soll...
Wobei ich glücklicherweise NOCH keine wirklichen Vorgaben habe wie ich was implementiere.
Der Compiler macht eh was er will, das kann man kaum steuern.
Die wirklichen Probleme einer nicht funktionierenden Software liegen oftmals völlig woanders.
Das ist auch der Grund warum ich stets mit verschiedenen Optionen compiliere und teste.
Es finden sich immer wieder neue Merkwürdigkeiten, die oft sogar mit der Prozessorarchitektur zusammen hängen.
Das kann eh keine automatische Codeanlayse feststellen.
Ich habe auch Funktionstabellen, weil es wesentlich Übersichtlicher ist als ein switch-case.
"offsetof" kannte ich noch garnicht, witzigerwiese scheint das genau das zu sein, was ich für meine
EEPROM struktur verwende....
Was soll daran nicht "sauber" bzw. nicht nachvollziehbar sein ?
Im eeprom bei mir liegt ein struct, wo welcher Wert liegt ist nicht direkt bekannt, aber man kann es berechnen:
Code:
t_ee_struct *p;
/* we dont know where the userdata is stored in the EEPROM */
/* but we can calulate the address: */
p = 0; /* think the struct starts at address 0 */
/* convert the pointer to a 32 Bit value (EE-ADDRESS) with the offset of setup_data */
ee_address = (U32)(&p->setup_data);
// Deine genannte Variante mit offsetof sieht doch VIEL besser aus, muss ich direkt mal ausprobieren .....
ee_address = offsetof(ee_data,setup_data);
das macro hab ich grad gesichtet:
Code:
#define offsetof(struct_type, member) \
(size_t) &(((struct_type *)0)->member)
Siro
Lesezeichen