Der Initializer enthält für jede Komponente einen Wert, wobei Unterkomonenten in {} gefasst werden. Zusätzlich kann man mit .name=...explizit eine Komponente nennen, ist aber "nur" GNU-C und kein ANSI-C. Ansonsten müssen die Initializer in der richtigen Reihenfolge stehen. Inits in einem Array kann man auch angeben mit zB [0]=...
Strings zu initialisieren ist etwas lästig wenn sie im Flash liegen sollen, weil das Makro PSTR eine lokale Variable braucht.
Beispiele sind etwa in https://www.roboternetz.de/wissen/in...#Sprungtabelle
Die Daten, die im Flash bleiben, erhalten das Attribut progmem und landen in der speziellen Section .progmem, die vom Startup-Code der vor main() läuft ins RAM kopiert werden.
https://www.roboternetz.de/wissen/in...terna#Sections
Lesezeichen