int_max in der 32-bit vs 64-bit-Umgebung
Ist INT_MAX
Unterschied zwischen 32-bit und 64-bit-Umgebung? Es scheint, wie es der Fall wäre, aber ich habe gehört, wie Leute sagen, dass die 64-bit-Umgebung nur verwendet die 32-bit-Umgebung ist INT_MAX.
- Es gibt keine solche Sache wie ein 32-bit-oder 64-bit-Umgebung, aber es gibt mehrere Definitionen für jedes dieser Systeme.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es hängt vom system ab. Auf Intel-Linux sind die gleichen. überprüfen Sie
limits.h
unsigned long long int
.Deine Frage ist vielleicht zu allgemein, aber auf das typische 64-bit-Umgebung (x86-64) int ist defacto die gleiche Größe wie auf 386 (halten Sie im Verstand, dies ist auch abhängig von OS, nicht nur in der Architektur). C-standard nur Grenzen untere Schranken (wie beschrieben auf wiki).
Für einige Compiler, es gibt einen Unterschied mit der
long
geben. Das istlong
ist 32 bit beim kompilieren für 32 bit und 64 bit sonst, währendint
ist 32 bits in beiden Fällen.Aber je nachdem, was Sie wollen, die Antwort auf Ihre Frage sein kann, um zu verwenden
int64_t
(oder dem äquivalent für den compiler, vielleicht__int64
oder so ähnlich), wenn Sie wollen, stellen Sie sicher, Sie haben eine 64-bit-int.So sollten Sie klären Ihre Frage stellen.
unsigned long long int
? Wird INT_MAX unterscheiden sich in diesem Fall zwischen den beiden Umgebungen?INT_MAX
ist der maximale Wert einesint
. Für den maximalen Wert einesunsigned long long
verwendenULLONG_MAX
. Aber es gibt keine Garantie dafür, dass diese unterscheiden sich zwischen den zwei "Umgebungen". Es unterscheiden können, oder nicht, je nach situation (Windows, Linux, compiler, etc)