Forum: Compiler & IDEs Warnung: "case label value is less than minimum value for type


von N. N. (drnicolas)


Lesenswert?

Die o.g. Warnmeldung irritiert mich sehr, obwohl ich kein Fehlverhalten 
des Codes feststelle konnte.

Die Warnungen betreffen folgenden Code(-Aussdchnitt)

switch(tmp_CANTX)
      {
        case -1:
        {
          //LCD_ShowErrorMessage(CAN_TX_RINGBUFFER_FULL);
          ErrorMsg.PacketType=MSG_CAN_RINGBUFFER_FULL;
          break;
        }

tmp_CANTX ist eine char variable; Negative Werte sollten also akzeptiert 
sein.

von klaus (Gast)


Lesenswert?

Afaik schreibt der C Standard nicht fest, ob ein pures "char" signed 
oder unsigned ist. Deshalb kann es gut sein, dass -1 außerhalb des 
Bereichs liegt und sich der Compiler zu Recht beschwert. Der Typ "char" 
sollte ausschließlich für Zeichen verwendet werden, für nichts anderes.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

klaus schrieb:
> Der Typ "char"
> sollte ausschließlich für Zeichen verwendet werden, für nichts anderes.

Für eine kleine vorzeichenbehaftete Ganzzahl benutzt man daher int8_t
(aus <stdint.h>).

von N. N. (drnicolas)


Lesenswert?

Vielen Dank!
Das wars - Schönheitsfehler behoben.

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.