64-Bit-Windows-Datentypen im Vergleich zu 32-Bit-Windows-Datentypen

Aus RAD Studio
Wechseln zu: Navigation, Suche

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

ShortInt

Byte

1 Byte

SmallInt

Word

2 Byte

LongInt

LongWord

4 Byte

FixedInt

FixedUInt

4 Byte

Integer

Cardinal

4 Byte

Int64

UInt64

8 Byte

NativeInt

NativeUInt

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

Pointer

4 Byte

8 Byte

string

Klasseninstanz

Klassenreferenz

Interface

AnsiString

WideString

UnicodeString

Prozedurenzeiger

Dynamisches Array

PAnsiChar

PWideChar

PChar

"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

Single

4 Byte

Double

8 Byte

Real

8 Byte

Extended

10 Byte

8 Byte

TExtended80Rec ist unter Win64 10 Byte groß.

Real48

6 Byte

Comp

8 Byte

Currency

8 Byte

Sonstige Typen

In Win64 wurde die Dateigröße erweitert.

Sonstige Typen

Delphi/32

Delphi/64

Bemerkungen

Boolean

1 Byte

ByteBool

1 Byte

WordBool

2 Byte

LongBool

4 Byte

AnsiChar

1 Byte

WideChar

2 Byte

Char

2 Byte

ShortString

256 Byte

string[N]

N+1 Byte

Variant / OleVariant

16 Byte

24 Byte

file

592 Byte

616 Byte

Text / TextFile

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

signed char

System::Byte, unsigned char

1 Byte

System::Smallint, short

System::Word, unsigned short

2 Byte

System::LongInt, signed long

System::LongWord, unsigned

4 Byte

System::Integer, int

System::Cardinal, unsigned int

4 Byte

System::Int64, unsigned __int64, long long

System::UInt64, unsigned __int64, unsigned long long

8 Byte

System::NativeInt, ssize_t

System::NativeUInt, size_t

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

System::String, System::UnicodeString

System::TObject

System::TClass

System::IInterface, System::DelphiInterface

System::AnsiString, System::AnsiStringT

System::WideString

System::UnicodeString

System::DynamicArray

System::PAnsiChar

System::PWideChar

System::PChar

__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

System::Single, float (C++)

4 Byte

System::Double, double (C++)

8 Byte

System::Extended, long double

10 Byte

8 Byte

TExtended80Rec ist unter Win64 10 Byte groß.

Real48

Nicht unterstützt

System::Comp

8 Byte

System::Currency

8 Byte

Sonstige Typen

In Win64 wurde die Dateigröße erweitert.

Sonstige Typen

C++/32  

C++/64  

Bemerkungen   

System::Boolean, bool

1 Byte

System::ByteBool, unsigned char

1 Byte

System::WordBool, unsigned short

2 Byte

System::LongBool, unsigned int

4 Byte

System::AnsiChar, char

1 Byte

System::WideChar, wchar_t

2 Byte

System::Char, wchar_t (Windows), char16_t (macOS)

2 Byte

System::ShortString

256 Byte

Variant / OleVariant

16 Byte

24 Byte

Konstanten

Konstanten

C++/32  

C++/64  

MaxInt

$7fffffff

MaxLongInt

$7fffffff

Siehe auch