Fehler C4309: Verkürzung konstanter Wert



  • Hi Folks,

    ich hab da mal ne Frage. Bekomme folgende Compiler-Warnung:

    "warning C4309: '=': Verkürzung eines konstanten Wertes"
    

    an dieser Stelle:

    char c = 0xF2
    

    Ich seh da grad mal gar kein Problem. Wenn ich es debugge läufts auch. Muss ich mir irgendwelche Gedanken machen? Ich mein, ich würds ja schon gern sauber programmieren 😉



  • char ist wahrscheinlich signed bei dir. Dadurch hast du nur 7 Bit für die Zahlendarstellung (weil eins fürs Vorzeichen draufgeht). Für 0xF2 brauchst du aber 8 Bit. Nimm einen anderen Datentyp, z.B. unsigned char oder int.



  • Ah, danke.
    Dachte char wäre automatisch 8 bit und wußte nicht, dass man das explizit angeben muss...
    Wieder was gelernt 😉



  • char ist auch auf nem normalen PC automatisch 8 Bit, nur geht halt eins drauf, für das Vorzeichen festzulegen.

    PS: Es braucht mir keiner den Standard wegen dem "automatisch" zu zitieren.


Anmelden zum Antworten