Komma im Struct?

OP #5151233
Lesenswert?
• ▲
▼
struct Message msg[MAXMSG] = {
    { { 0xFF,     0, 0xFF, 0, 0, 0, 0}, 3},   // idle msg
    { { locoAdr, 0x3F,  0, 0, 0, 0, 0}, 4}    // locoMsg with 128 speed 
steps
  };               // loco msg must be filled later with speed and XOR 
data byte


3},   // idle msg
4}    // locoMsg with

Was bewirkt das Komma nach der geschweiften Klammer?

4},    // locoMsg with
mit Komma entsteht kein Compiler Fehler!
Lesenswert?
• ▲
▼
Das abschließende Komma macht nix, ist aber in einigen Fällen ganz 
nützlich:
1
struct Message msg[MAXMSG] = {
2
    { { 0xFF,     0, 0xFF, 0, 0, 0, 0}, 3},   
3
    { { locoAdr, 0x3F,  0, 0, 0, 0, 0}, 4},
4
#if ADDITONAL_MESSAGE_PRESENT
5
    { { 0xC0, 0xDE,  0, 0, 0, 0, 0}, 5},
6
#endif
7
    // { { 0xAF, 0xFE,  0, 0, 0, 0, 0}, 6},
8

9
    
10
  };

Grade bei µC Projekten kommt hier oft der Präprozessor zum Einsatz, um 
leicht verschiedene Varianten desselben Projektes zu erzeugen.
Moderator
Lesenswert?
• ▲
▼
Al. K. schrieb:
> Was bewirkt das Komma nach der geschweiften Klammer?

Das trennt die einzelnen Array-Elemente voneinander.

> 4},    // locoMsg with
> mit Komma entsteht kein Compiler Fehler!

Das Komma nach dem letzten Array-Element ist optional. Logisch gesehen
braucht man es nicht. Allerdings ist das Einfügen und Löschen von Zeilen
sowie das Schreiben von Programmen, die die Initialisierungslisten
automatisch generieren, dadurch etwas einfacher.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.