Forum: Compiler & IDEs char - Warnung vom Kompiler


von Tilo (Gast)


Lesenswert?

Hallo

Ich programmiere mit gcc einen ARM und will den Speicherbedarf meines
Programms minimieren. Für viele Ganzzahlen reicht mir der Bereich
von 0.255, also 1 Byte. Der Datentyp char würde also genau passen.

Beim kompilieren bekomme ich eine Warnung:
./control.c:91: warning: array subscript has type 'char'

volatile char PeakBuffer[4][20];
volatile char p2pdistance[4];
[...]
Zeile 91:
PeakBuffer[SensorNo][PeakBufferWritePosition[SensorNo]] = 
p2pdistance[SensorNo];

Was wäre eine saubere Lösung, die Warnung wegzubekommen?
Eingen eigenen Variablentyp mit 1Byte definieren?

Bis dann und noch eine schöne Weihnacht,

von Tilo (Gast)


Lesenswert?

Habs gefunden.
Je nach Umgebung kann char von -127..128 oder von 0..255 läuft.
Daher könnten bei einem char negative Array-Indices auftreten und
der Kompiler gibt eine Warnung aus.

Lösung: unsigned char verwenden.

Bis dann, Tilo

von Chris (Gast)


Lesenswert?

> Lösung: unsigned char verwenden.

Besser: uint8_t verwenden.

von Ulrich (Gast)


Lesenswert?

is doch eh das gleiche.... aber auf jedenfall schöner zu lesen

Frohe Weihnachten

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

nö. unsigned char muß nicht zwingendermaßen den gleichen Wertebereich 
abdecken wie uint8_t

klugscheißzuweihnachten

:-) Matthias

von Ulrich (Gast)


Lesenswert?

OK ich muss meine Aussage auf den Menge "WINARV-Entwicklungsumgebung" 
einschränken. Dann passt und klappt auch mit dem Nachbar ;-)

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.