64-Bit-Windows-Datentypen im Vergleich zu 32-Bit-Windows-Datentypen
Inhaltsverzeichnis
Nach oben zu 64-Bit-Windows-Anwendungsentwicklung
Die folgenden Tabellen geben einen Überblick über die Unterschiede und Gemeinsamkeiten der Datentypen von 64-Bit- und 32-Bit-Betriebssystemen.
Größen der in Delphi integrierten 32-Bit- und 64-Bit-Windows-Typen
Integrale Typen
In Win64 ist NativeInt doppelt so groß wie in Win32 und NativeUInt ist doppelt so groß wie in Win32.
Integertyp mit Vorzeichen |
Integertyp ohne Vorzeichen |
Delphi/32 |
Delphi/64 |
---|---|---|---|
1 Byte | |||
2 Byte | |||
4 Byte | |||
4 Byte | |||
4 Byte | |||
8 Byte | |||
4 Byte |
8 Byte |
Zeigertypen
In 64-Bit-Windows sind alle Zeigertypen 8 Byte groß, d. h. doppelt so groß wie in 32-Bit-Windows.
Zeigertypen |
Delphi/32 |
Delphi/64 |
---|---|---|
4 Byte |
8 Byte | |
Klasseninstanz | ||
Klassenreferenz | ||
Interface | ||
Prozedurenzeiger | ||
Dynamisches Array | ||
"Procedure of object"
In 64-Bit-Windows ist die Ausrichtung für "procedure of object" 16 Byte, d. h. doppelt so groß wie in 32-Bit-Windows.
"Procedure of object" | Delphi/32 | Delphi/64 | Bemerkungen |
---|---|---|---|
Größe | 8 Byte | 16 Byte | |
Ausrichtung | 8 Byte | 16 Byte | Auch closure-Typ genannt |
Gleitkommatypen (einschließlich des Datentyps "Extended")
Der Typ "Extended" hat unter 64-Bit-Windows eine um 2 Byte geringere Genauigkeit als unter 32-Bit-Windows (8 Byte im Gegensatz zu 10 Byte).
Weitere Informationen finden Sie unter Der Datentyp "Extended" ist auf 64-Bit-Windows-Systemen 2 Byte kleiner.
Gleitkommatypen |
Delphi/32 |
Delphi/64 |
Bemerkungen |
---|---|---|---|
4 Byte |
|||
8 Byte |
|||
8 Byte |
|||
10 Byte |
8 Byte |
TExtended80Rec ist unter Win64 10 Byte groß. | |
6 Byte |
|||
8 Byte |
|||
8 Byte |
Sonstige Typen
In Win64 wurde die Dateigröße erweitert.
Sonstige Typen |
Delphi/32 |
Delphi/64 |
Bemerkungen |
---|---|---|---|
1 Byte |
|||
1 Byte |
|||
2 Byte |
|||
4 Byte |
|||
1 Byte |
|||
2 Byte |
|||
2 Byte |
|||
256 Byte |
|||
string[N] |
N+1 Byte |
||
16 Byte |
24 Byte | ||
592 Byte |
616 Byte |
||
730 Byte |
754 Byte |
720 Byte im XE-Release |
Konstanten
Konstanten |
Delphi/32 |
Delphi/64 |
---|---|---|
MaxInt |
$7fffffff | |
MaxLongInt |
$7fffffff |
Größen der in C++Builder integrierten 32-Bit- und 64-Bit-Windows-Typen
Die folgenden Tabellen geben einen Überblick über die Unterschiede und Gemeinsamkeiten der Datentypen von 64-Bit- und 32-Bit-Betriebssystemen in C++Builder.
- Hinweis: Für Member der Unit System (wie System::Byte) müssen Sie
#include <System.hpp>
verwenden.
Integrale Typen
In Win64 ist System::NativeInt/ssize_t doppelt so groß wie in Win32.
System::NativeUInt/ssize_t ist ebenfalls doppelt so groß wie in Win32.
Integertyp mit Vorzeichen |
Integertyp ohne Vorzeichen |
C++/32 |
C++/64 |
Bemerkungen |
---|---|---|---|---|
1 Byte |
||||
2 Byte |
||||
System::LongWord, unsigned |
4 Byte |
|||
4 Byte |
||||
8 Byte |
||||
4 Byte |
8 Byte |
Zeigertypen
In 64-Bit-Windows sind alle Zeigertypen 8 Byte groß, d. h. doppelt so groß wie in 32-Bit-Windows.
Zeigertypen |
C++/32 |
C++/64 |
---|---|---|
System::Pointer, void* |
4 Byte |
8 Byte |
__closure
Unter 64-Bit-Windows ist die Ausrichtung für "__closure" 16 Byte, d. h. doppelt so groß wie in 32-Bit-Windows.
__closure | 8 Byte | 16 Byte |
Gleitkommatypen (einschließlich des Datentyps "Extended")
Der Typ "Extended" hat in 64-Bit-Windows eine um 2 Byte geringere Genauigkeit.
Weitere Informationen finden Sie unter Der Datentyp "Extended" ist auf 64-Bit-Windows-Systemen 2 Byte kleiner.
Gleitkommatypen |
C++/32 |
C++/64 |
Bemerkungen |
---|---|---|---|
4 Byte |
|||
8 Byte |
|||
System::Extended, long double |
10 Byte |
8 Byte |
TExtended80Rec ist unter Win64 10 Byte groß. |
Nicht unterstützt |
|||
8 Byte |
|||
8 Byte |
Sonstige Typen
In Win64 wurde die Dateigröße erweitert.
Sonstige Typen |
C++/32 |
C++/64 |
Bemerkungen |
---|---|---|---|
1 Byte |
|||
1 Byte |
|||
2 Byte |
|||
4 Byte |
|||
1 Byte |
|||
2 Byte |
|||
System::Char, wchar_t (Windows), char16_t (macOS) |
2 Byte |
||
256 Byte |
|||
16 Byte |
24 Byte |
Konstanten
Konstanten |
C++/32 |
C++/64 |
---|---|---|
MaxInt |
$7fffffff | |
MaxLongInt |
$7fffffff |