Frage:
Widersprüchliche Informationen deuten darauf hin, dass „ long‘ darf auf 64-Bit-Windows-Rechnern nicht 64 Bit sein. Stimmt das und was sollten Programmierer stattdessen verwenden?
Antwort:
Die Antwort liegt in der Untersuchung verschiedener Ganzzahlgrößenanordnungen auf 64-Bit-Plattformen:
ILP64 (Int, Long, Zeiger sind 64-Bit)
LP64 (Long, Zeiger sind 64-Bit)
LLP64 (Long Long, Zeiger sind 64-Bit)
Auswirkungen für Windows:
Unter 64-Bit-Windows: „long“ ist im Gegensatz zu anderen 64-Bit-Plattformen tatsächlich 32 Bit. Microsoft hat das LLP64-Schema übernommen, um die Kompatibilität mit vorhandenen 32-Bit-Anwendungen sicherzustellen.
Empfehlungen:
Um plattformneutralen Code sicherzustellen, verwenden Sie Ganzzahltypen aus den
Seien Sie vorsichtig, wenn Verwenden von Systemtypen (z. B. „lang“), da diese von Plattform zu Plattform unterschiedlich sein können. Verwenden Sie intptr_t nur als Ergebnis der Subtraktion zweier uintptr_t-Werte.
Schlussfolgerung:
Die Bitgröße von „long“ unter 64-Bit-Windows beträgt 32 Bit, abweichend von das LP64-Schema, das von vielen anderen 64-Bit-Systemen verwendet wird. Um plattformspezifische Komplikationen zu vermeiden, sollten Programmierer plattformneutrale Ganzzahltypen übernehmen und sorgfältig mit Systemtypen umgehen.
Das obige ist der detaillierte Inhalt vonIst „lang' unter 64-Bit-Windows wirklich 64-Bit?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!