hallo, bei diesem Code: struct datenfeld { char feldname[16]; unsigned int zahl; }; struct datenfeld zeile[] = { "abc", 123, "def", 456, }; erhalte ich beim Compilieren mit dem avr-ggc folgende Warnungen: ../spielwiese.c:5: warning: missing braces around initializer ../spielwiese.c:5: warning: (near initialization for `zeile[0]') irgendwie hänge ich jetzt in der Luft :-( hat mir da jemand einen Tipp? Jürgen
Der Compiler sagts doch: missing braces struct datenfeld zeile[] = { { "abc", 123 }, { "def", 456 }, }; Du musst ihm jede Initialisierung einer kompletten Struktur in { } einschliessen.
hallo, danke für den Tipp. Ist schon interessant wie verschiedene Compiler da mit solchen Feinheiten umgehen ;-) Jürgen
struct datenfeld zeile[] = { 0 = { .feldname = "abc", .zahl = 123 }, 1 = { .feldname = "def", .zahl = 456 }, }; wenn es nicht durch C++ compiler durch soll
> Ist schon interessant wie verschiedene Compiler da > mit solchen Feinheiten umgehen ;-) Das hat weniger mit dem COmpiler zu tun. So ist es in den C Sprachregeln definiert.
So gehts auch:
1 | struct datenfeld zeile[] = { |
2 | [0].feldname = "abc", |
3 | [0].zahl = 123, |
4 | [1].feldname = "def", |
5 | [1].zahl = 456 |
6 | }
|
Finde ich persönlich übersichtlicher.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.