Forum: Mikrocontroller und Digitale Elektronik Komma im Struct?


von Al. K. (alterknacker)


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!

von MaWin (Gast)


Lesenswert?

>Was bewirkt das Komma nach der geschweiften Klammer?

Nichts

von ui (Gast)


Lesenswert?

also die formatierung ist ja grauenhaft

man kann hier auch automatisch formatieren!

von derjaeger (Gast)


Lesenswert?

Strukturfeldinitialisierung mit Initialisierung der einzelnen 
Strukturen?

von Stefan K. (stefan64)


Lesenswert?

Poste mal die Definition von struct MESSAGE.
Welchen Wert hat MAXMSG?

Code und Text kann man durch Formatierung voneinaner trennen. Dann kann 
man Dein Problem besser verstehen.

von user (Gast)


Lesenswert?

Damit wird ein 2-Dimensionales Array daraus

von Jim M. (turboj)


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.

von Yalu X. (yalu) (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.

von Al. K. (alterknacker)


Lesenswert?

dieses spezielle Komme ist für mich jetzt verständlich.
Danke

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
Noch kein Account? Hier anmelden.