Hochstufung binärer Operatoren bei unterschiedlichen Vorzeichen
Wenn binäre Operatoren Operanden mit unterschiedlichen Vorzeichen bearbeiten, stellt der C-Standard spezifische Richtlinien zur Bestimmung der Hochstufung bereit Regeln und der resultierende Typ.
Abschnitt 5/9 des Standards beschreibt die „üblichen arithmetischen Konvertierungen“, die gelten an solche Betreiber. Diese Konvertierungen folgen einer hierarchischen Reihenfolge:
Wird angewendet diese Regeln zu den bereitgestellten Codebeispielen:
Beispiel 1:
unsigned int one = 1; int max = std::numeric_limits<int>::max(); unsigned int result = max + one;
Da unsigned int in Schritt 5 der Regeln Vorrang vor int hat, werden alle Operanden konvertiert zu unsigned int. Daher ist das Ergebnis vom Typ „unsigned int“.
Beispiel 2:
unsigned int us = 42; int neg = -43; int result = us + neg;
In diesem Fall schreiben die Regeln vor, dass beide Operanden in „unsigned int“ konvertiert werden sollen. Der resultierende Wert (-1) kann jedoch nicht in unsigned int dargestellt werden. Daher ist der Ergebnistyp des Ausdrucks gemäß §4.7/3.
durch die Implementierung definiertDas obige ist der detaillierte Inhalt vonWie geht C mit der Heraufstufung binärer Operatoren mit unterschiedlicher Vorzeichen um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!