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.