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 | |