2010-03-07 5 views

Antwort

6

Die uunsigned ist, das heißt: der 1int Wert 1 ist, und ist der 1uunsigned int Wert 1.

+2

und die Wirkung der es in diesem Fall zu behandeln, ist, dass, wenn 'rev3 [gx]' ist ein int, und daher negativ sein könnte, dass es umgesetzt wird 'nicht signiert ', bevor es durch 193 geteilt wird. Auf meiner Maschine' (int) (- 1/193) 'ist 0, während' (int) (- 1/193U) '22253716 ist. Aber wenn' rev3 [gx] 'ist ein vorzeichenbehafteter Integer-Typ * größer * als int, dann macht das U keinen Unterschied zum Ergebnis: '(-1LL/193U) == (-1LL/193)', beide sind vom Typ long long. Ich muss sie lieben, ganzzahlige Promotion-Regeln. –

2

Es bedeutet, es ist eine unsigned int konstant. Es ist eine Möglichkeit, dem Compiler mitzuteilen, dass er einen bestimmten Typ für eine Konstante verwenden soll, bei der er den Typ nicht kennt. Ein nackter 193 würde normalerweise wie ein int behandelt werden.

Es ist ähnlich dem L Suffix für long, ULL für unsigned long long und so weiter.

3

Es bedeutet, dass die Zahl ein unsigned int ist, die außer einem Datentyp ähnlich wie ein int ist, dass es keine negativen Werte aufweist, die ein Abwägen es macht, ist so dass es größere Werte speichern kann (doppelt so groß wie ein normales int).

0

Es bedeutet, den Wert als Wert ohne Vorzeichen

Verwandte Themen