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!
#5151261
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 #5151262
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren