Wie in diesem Code:Was bedeutet es, wenn Zahlen mit U enden
int nx = (int)((rev3[gx])/193U);
Was ist mit der U am Ende von 193?
Wie in diesem Code:Was bedeutet es, wenn Zahlen mit U enden
int nx = (int)((rev3[gx])/193U);
Was ist mit der U am Ende von 193?
Die u
unsigned
ist, das heißt: der 1
int
Wert 1 ist, und ist der 1u
unsigned int
Wert 1.
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.
U bedeutet unsigned.
Werfen Sie einen Blick hier für mehr: http://cplus.about.com/od/learnc/ss/variables_6.htm
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
).
Es bedeutet, den Wert als Wert ohne Vorzeichen
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. –