Forum: PC-Programmierung Frage zu C, Bufferbeispiel mit structanweisung kombiniert


von PastaParty (Gast)


Lesenswert?

Gegeben ist im Ringbufferbeispiel dieser Code:
1
struct Buffer {
2
  uint8_t data[BUFFER_SIZE];
3
  uint8_t read; // zeigt auf das Feld mit dem ältesten Inhalt
4
  uint8_t write; // zeigt immer auf leeres Feld
5
} buffer = {{}, 0, 0};

buffer = {{},0,0} was bedeutet dass?

Meine Annahme:

Alle Werte in buffer.data[0 bis Buffersize-1] sind leer
buffer.read=buffer.write = 0

Ist meine Annahme richtig?

Ueber eine Antwort von Euch wuerd ich mich freuen.

von Karl H. (kbuchegg)


Lesenswert?

PastaParty schrieb:


> Alle Werte in buffer.data[0 bis Buffersize-1] sind leer

Ein uint8_t kann nicht leer sein. Ein Byte hat immer einen Wert. Die 
Bits sind ja da, und sie sind entweder 0 oder 1, sodass sich mit 8 Bit 
dann eben ein Wert ergibt.
Und wenn in C weniger Werte für die Initialisierung angegeben sind, als 
das Array dimensioniert wurde, dann füllt der Compiler mit 0 auf.

Wobei es bei einem korrekt programmierten FIFO keine Rolle spielt, mit 
welchen Werten das eigentliche Buffer-Array initialisiert wird. Diese 
Werte werden sowieso nie benutzt.

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.