www.mikrocontroller.net

Forum: Compiler & IDEs char - Warnung vom Kompiler


Autor: Tilo L. (katagia)
Datum:

Bewertung
0 lesenswert
nicht 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,

Autor: Tilo L. (katagia)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Lösung: unsigned char verwenden.

Besser: uint8_t verwenden.

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
is doch eh das gleiche.... aber auf jedenfall schöner zu lesen

Frohe Weihnachten

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

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

klugscheißzuweihnachten

:-) Matthias

Autor: Ulrich (Gast)
Datum:

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.