Mögliches Duplikat:
Addition von zwei Zeichen ergibt int
Gegeben sei der folgende C++-Code:
unsigned char a = 200;
unsigned char b = 100;
unsigned char c = (a + b) / 2;
Die Ausgabe ist 150 als logischerweise erwartet, aber sollte es nicht zu einem Integer-Überlauf in dem Ausdruck (a + b)
?
Offensichtlich muss es eine Integer-Promotion geben, um den Überlauf hier zu behandeln, oder es passiert etwas anderes, das ich nicht sehen kann. Ich frage mich, ob mich jemand aufklären kann, damit ich weiß, worauf ich mich in Bezug auf die Integer-Promotion und den Überlauf verlassen kann und nicht sollte.