Könnten Sie bitte deutlich machen, was der Unterschied zwischen ist unsigned
und unsigned int
? Vielleicht wäre ein Beispielcode hilfreich.
Unterschied zwischen unsigned und unsigned int in C
thetna
unsigned
ist ein Modifikator, der auf jeden ganzzahligen Typ angewendet werden kann (char
, short
, int
, long
etc.), aber für sich genommen ist es identisch mit unsigned int
.
Es gibt keinen Unterschied. unsigned
und unsigned int
sind beide Synonyme für denselben Typ (die unsignierte Version von int
Typ).
unsigned
alleine bedeutet unsigned int. Sie können auch verwenden unsigned char
usw. Ich habe keine Ahnung, was passiert, wenn Sie es versuchen unsigned double
oder unsigned float
. Weiß jemand?
-
Der Compiler wird Ihnen sagen, dass dies ein Fehler ist. Beide
double
undfloat
werden durch die IEEE-754-Dokumentation definiert.– Stan
24. August 2011 um 14:09 Uhr
-
@stan das macht Sinn. Ich stellte mir das seltsame Verhalten vor, das auftreten würde, wenn irgendwie
double
undfloat
könnte unsigniert sein. Würde es einfach das Vorzeichenbit ignorieren? Vielleicht etwas Präzisierung zum Signifikanten hinzufügen oder so?– Daniel
24. August 2011 um 14:16 Uhr
-
@Daniel: 6,2,5 Zoll der C99-Standard ist gut zu lesen. Grundsätzlich heißt es, dass es Floating-Typen und Integer-Typen gibt; und
unsigned
stimmt mit keinem Teil der Spezifikation von Floating-Typen überein 🙂– pmg
24. August 2011 um 14:24 Uhr
-
@Stan: C-Genehmigungen
float
,double
undlong double
gemäß IEEE 754 zu implementieren, erfordert dies jedoch nicht.– Keith Thompson
30. Oktober 2013 um 4:12 Uhr
unsigned gibt an, dass es unsigned int ist. Sie sind also gleichwertig.
Sie sind genau dasselbe.
Versuchen Sie diesen Code:
unsigned int a=-1; printf("see as signed=%d\nsee as unsigned=%u\n", a, a);
– Stan
24. August 2011 um 14:12 Uhr