Hi, gibt es irgend eine Vorgabe, was passiert, wenn man auf eine uint8_t Variable, welche den Inhalt 0x00 hat den decrement Operator anwendet? Oder ist das verhalten unbestimmt? Gruß
Jörg Wunsch schrieb: > Definiert 255. Aber Vorsicht! Fuer signed-Typen ist das Verhalten bei Overflow schon nicht mehr definiert...
Jasch schrieb: > Fuer signed-Typen ist das Verhalten bei Overflow schon nicht mehr > definiert... Richtig. Auch bei "unsigned char" ist es nicht wirklich sicher, da könnte bspw. auch 0xffffffff rauskommen (wenn char nämlich 32 bit breit ist). Aber bei "uint8_t" ist es sicher.
Jörg Wunsch schrieb: > Jasch schrieb: > >> Fuer signed-Typen ist das Verhalten bei Overflow schon nicht mehr >> definiert... > > Richtig. Auch bei "unsigned char" ist es nicht wirklich sicher, > da könnte bspw. auch 0xffffffff rauskommen (wenn char nämlich 32 > bit breit ist). Mir ist jetzt keine GCC-Zielarchitektur bekannt, bei der das so wäre. > Aber bei "uint8_t" ist es sicher. Wenn es einen uint8_t gibt, dann ist es auch für unsigned char sicher ;-)
Rolf Magnus schrieb: > Mir ist jetzt keine GCC-Zielarchitektur bekannt, bei der das so wäre. Ich kenne derartige Architekturen auch nur vom Hörensagen und weiß nicht, ob's dafür dann einen GCC-Port gibt. Allerdings fällt in den GCC-Quellen und -Tests auf, dass an vielen Stellen _CHAR_BIT_ explizit gefragt wird statt einfach anzunehmen, es hätte konstant den Wert 8. Das legt zumindest den Schluss nahe, dass schonmal jemand den Versuch unternommen hat, GCC auf derartige Architekturen zu portieren.
Rolf Magnus schrieb: > Mir ist jetzt keine GCC-Zielarchitektur bekannt, bei der das so wäre. Ich hatte mal mit einer Architektur zu tun, die keine 16-Bit Datentypen unterstützte. Da war logischerweise short=int=32bit.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.