2016-03-23 7 views
2

Ich denke, es könnte unsigned bedeuten. Aber was genau ist der Unterschied zwischen:Was bedeutet das "U" in c definiert (d. H. #define FOO ((uint32_t) 1000U)))

#define FOO ((uint32_t)1000U)) 

und

#define FOO ((uint32_t)1000)) 
+0

Es scheint, dass Sie mehr über Integer Literal in C lernen müssen. Ich schlage auch vor, den Unterschied zwischen '0x1000u',' 1000u', '0100u' zu betrachten. – user3528438

+1

Um ehrlich zu sein, wäre es interessant und wahrscheinlich nicht sehr fruchtbar, wenn man nicht wüsste, nach "literal" zu suchen, wenn man versucht, dies aus Websuchen abzuleiten. – jdv

+0

@jdv Nicht so. Googeln "u Suffix in C" wäre ausreichend gewesen. – matt

Antwort

0

Nach this table gibt es eine Konstante vom Typ unsigned int. Die gleiche Erklärung kann here gefunden werden.

+1

Warum gibt es eine Besetzung, dann? – usr2564301

+0

@RadLexus Betrachte einen Fall, in dem 'sizeof (unsigned) == 2', ohne die Umwandlung in' uint32_t', FOO wäre nur 2 Bytes gewesen, was alle Arten von kleinen Fehlern (besonders in C++) verursachen könnte. Im Allgemeinen ist das "U" überflüssig, wenn Sie die Besetzung machen, aber die Umkehrung ist nicht wahr. – mtijanic