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

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

Nach oben zu Entwickeln von plattformübergreifenden 64-Bit-Anwendungen für Windows


Die folgenden Tabellen geben einen Überblick über die Unterschiede und Gemeinsamkeiten der Datentypen von 64-Bit- und 32-Bit-Betriebssystemen.

Größen der in Object Pascal integrierten 32-Bit- und 64-Bit-Windows-Typen

Integrale Typen

In Win64 ist NativeInt doppelt so groß wie in Win32 und NativeUInt ist ebenfalls doppelt so groß wie in Win32.

Integertyp mit Vorzeichen

Integertyp ohne Vorzeichen

Object Pascal/32

Object Pascal/64

Bemerkungen

ShortInt

Byte

1 Byte

SmallInt

Word

2 Byte

LongInt

LongWord

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

Object Pascal/32

Object Pascal/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" Object Pascal/32 Object Pascal/64 Bemerkungen
Größe 8 Byte 16 Byte
Ausrichtung 8 Byte 16 Byte closure-Typ

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 in 64-Bit-Windows-Systemen 2 Byte kleiner.

Gleitkommatypen

Object Pascal/32

Object Pascal/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

Object Pascal/32

Object Pascal/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

Object Pascal/32

Object Pascal/64

MaxInt

$7fffffff

MaxLongInt

$7fffffff

Größen der in Appmethod C++ 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 Appmethod C++.

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 in Win64 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<code-page>

System::WideString

System::UnicodeString

System::DynamicArray

System::PAnsiChar

System::PWideChar

System::PChar

__closure

In 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 in 64-Bit-Windows-Systemen 2 Byte kleiner.

Gleitkommatypen

C++/32

C++/64

Bemerkungen

System::Single, float

4 Byte

System::Double, double

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 (OSX)

2 Byte

System::ShortString

256 Byte

Variant / OleVariant

16 Byte

24 Byte

Konstanten

Konstanten

C++/32  

C++/64  

MaxInt

$7fffffff

MaxLongInt

$7fffffff

Siehe auch