Bitgröße von Long unter 64-Bit-Windows: Ein genauerer Blick
Die Frage nach der Größe von Long unter 64-Bit-Windows stellt sich löste einige Verwirrung aus. Während die Dokumentation nahelegt, dass long in dieser Umgebung tatsächlich 64-Bit ist, ist die Realität differenzierter.
Im Bereich von Unix-Systemen gibt es verschiedene Anordnungen für Ganzzahl- und Zeigergrößen auf 64-Bit-Plattformen, hauptsächlich ILP64 und LP64. Der Ansatz von Microsoft unterscheidet sich jedoch bei LLP64.
ILP64 vs. LP64
Type | ILP64 | LP64 | LLP64 |
---|---|---|---|
char | 8 | 8 | 8 |
short | 16 | 16 | 16 |
int | 64 | 32 | 32 |
long | 64 | 64 | 32 |
long long | 64 | 64 | 64 |
pointer | 64 | 64 | 64 |
Alle modernen 64-Bit-Unix-Systeme verwenden LP64, wobei long für 64-Bit steht. MacOS Folglich gilt auf 64-Bit-Windows-Systemen:
long und int bleiben 32-Bit groß
Neue Datentypen werden für 64-Bit-Ganzzahlen eingeführtint8_t bis int64_t für vorzeichenbehaftete Ganzzahlen
uintptr_t für vorzeichenlose Ganzzahlen zum Speichern von Zeigernintmax_t für die größte Ganzzahlgröße auf der PlattformWährend long auf Unix-Systemen normalerweise 64 Bit beträgt, bleibt es auf 64-Bit-Windows 32 Bit aufgrund des LLP64-Ansatzes von Microsoft. Durch das Verständnis der verschiedenen Ganzzahlgrößenkonventionen und die Verwendung plattformneutraler Typen können Entwickler Code erstellen, der mit einer Vielzahl von Systemen kompatibel ist.
Das obige ist der detaillierte Inhalt vonIst „long' unter 64-Bit-Windows wirklich 64-Bit?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!