unsigned long (long)
-
Hallo;
Ist "unsigned long" nach Standard schon 64 Bits breit, oder erst "unsigned long long"?;
Danke;
-
der standard garantiert nichts über die größe.
er garantiert nur (sinngemäß), dass ein long (ob unsigned oder nicht) mindestens 32 bit hat, ein short 16. short und long sind jeweils abkürzungen für short int und long int.
manch ein compiler unterstützt auch long long int, das ist aber nicht im standard. bei anderen heißt dieser datentyp dann zb __int64 o.ä. und hat idR 64 bit.
-
wenn du ein compilier für eine 64 bit platform benutz wird long wahrscheinlich 64 bit sein
-
@davie: Der Standard garantiert doch afaik nur, dass short <= int <= long.
-
signed char fehlt in deiner liste. du hast recht. ich hab jetzt im standard gesucht, und auch die entsprechende passage gefunden (3.9.1§2) doch im hinterkopf hatte ich von irgendwoher den gedanken, dass es ebenfalls garantiert ist, dass
char mindestens 2^8 zahlen darstellen kann, short mindestens 2^16 und int mindestens 2^32. tatsächlich schreibt das stroustrup (deutsche ausgabe der special edition, S.81 ganz unten). wahrscheinlich beherrsche ich noch nicht so gut die suchen funktion meines pdf-readers, aber ich habe das im (c++) standard nirgends gefunden. dieser sagt nur, das int im bereich INT_MIN und INT_MAX liegen muss.
-
Der Standard schreibt Mindestwertebereiche vor, indem er auf das Kapitel im C-Standard verweist, welches die Mindestwerte für INT_MAX usw. aus der <limits.h> definiert.
-
das hab ich mir gedacht, nur hab ich den C standard leider nicht zur verfügung.
-
Der Draft den ich hier vorliegen habe hat den Code N869. Danach kannst du googeln. Das ist dann zwar nicht C89, aber die für C++ wesentlichen Inhalte sollten sich nicht drastisch verändert haben.
-
danke, schon der erste link bei google liefert ihn