Frage zu C, Bufferbeispiel mit structanweisung kombiniert

Gast #2902260
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.
#2902283
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.

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