www.mikrocontroller.net

Forum: Compiler & IDEs arv-gcc: Problem mit struct


Autor: Jürgen M. (jmayer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Compiler sagts doch: missing braces

struct datenfeld zeile[] = { { "abc", 123 },
                             { "def", 456 },
                           };


Du musst ihm jede Initialisierung einer kompletten Struktur
in { } einschliessen.

Autor: Jürgen M. (jmayer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

danke für den Tipp. Ist schon interessant wie verschiedene Compiler da 
mit solchen Feinheiten umgehen ;-)

Jürgen

Autor: _daniel_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
struct datenfeld zeile[] = { 0 = { .feldname = "abc", .zahl = 123 },
                             1 = { .feldname = "def", .zahl = 456 },
                           };

wenn es nicht durch C++ compiler durch soll

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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.

Autor: Marko B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So gehts auch:
struct datenfeld zeile[] = {
    [0].feldname = "abc",
    [0].zahl = 123,
    [1].feldname = "def",
    [1].zahl = 456
}

Finde ich persönlich übersichtlicher.

Autor: Marko B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ups, semikolon vergessen ;)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.