Types de données Windows 64 bits comparés aux types de données Windows 32 bits

De RAD Studio
Aller à : navigation, rechercher

Remonter à Développement des applications multiplates-formes 64 bits pour Windows


Les tableaux suivants récapitulent les différences et les similitudes entre les types de données des systèmes d'exploitation 32 bits et 64 bits.

Tailles des types intégrés Delphi Windows 32 bits et 64 bits

Types intégraux

Sur Win64, NativeInt est deux fois la taille du Win32 NativeInt, et NativeUInt est deux fois la taille du Win32 NativeUInt.

Entier signé

Entier non signé

Delphi/32

Delphi/64

ShortInt

Byte

1 octet

SmallInt

Word

2 octets

LongInt

LongWord

4 octets

FixedInt

FixedUInt

4 octets

Integer

Cardinal

4 octets

Int64

UInt64

8 octets

NativeInt

NativeUInt

4 octets

8 octets

Types pointeur

Sur Windows 64 bits, la taille de tous les types pointeur est de 8 octets, deux fois la taille sur Windows 32 bits.

Types pointeur

Delphi/32

Delphi/64

Pointer

4 octets

8 octets

string

class instance

class reference

interface

AnsiString

WideString

UnicodeString

procedure pointer

dynamic array

PAnsiChar

PWideChar

PChar

"Procedure of object"

Sur Windows 64 bits, l'alignement pour un type "procedure of object" est de 16 octets, deux fois la taille sur Windows 32 bits.

Procedure of object Delphi/32 Delphi/64 Commentaires
Taille 8 octets 16 octets
Alignement 8 octets 16 octets Connu en tant que type closure

Types à virgule flottante (y compris le type de données Extended)

Le type Extended a une précision inférieure de 2 octets sur Windows 64 bits par rapport à Windows 32 bits (8 octets contre 10 octets).

Pour de plus amples informations, voir Le type de données Extended est de 2 octets plus petit sur les systèmes Windows 64 bits.

Types à virgule flottante

Delphi/32

Delphi/64

Commentaires

Single

4 octets

Double

8 octets

Real

8 octets

Extended

10 octets

8 octets

TExtended80Rec est de 10 octets sur Win64

Real48

6 octets

Comp

8 octets

Currency

8 octets

Autres types

Sur Win64, la taille des fichiers a été augmentée.

Autres types

Delphi/32

Delphi/64

Commentaires

Boolean

1 octet

ByteBool

1 octet

WordBool

2 octets

LongBool

4 octets

AnsiChar

1 octet

WideChar

2 octets

Char

2 octets

ShortString

256 octets

string[N]

N+1 octets

Variant / OleVariant

16 octets

24 octets

file

592 octets

616 octets

Text / TextFile

730 octets

754 octets

720 octets dans la release XE

Constantes

Constantes

Delphi/32

Delphi/64

MaxInt

$7fffffff

MaxLongInt

$7fffffff

Tailles des types intégrés C++Builder Windows 32 bits et 64 bits

Les tableaux suivants récapitulent les différences et les similitudes entre les types de données des systèmes d'exploitation 32 bits et 64 bits dans C++Builder.

Remarque : Afin d'utiliser des membres de l'unité System (comme System::Byte), vous devez utiliser #include <System.hpp>.

Types intégraux

Sur Win64, System::NativeInt/ssize_t est deux fois la taille du Win32 System::NativeInt/ssize_t.
De même, System::NativeUInt/ssize_t est deux fois la taille du Win32 System::NativeUInt/size_t.

Entier signé

Entier non signé

C++/32

C++/64

Commentaires

signed char

System::Byte, unsigned char

1 octet

System::Smallint, short

System::Word, unsigned short

2 octets

System::LongInt, signed long

System::LongWord, unsigned

4 octets

System::Integer, int

System::Cardinal, unsigned int

4 octets

System::Int64, unsigned __int64, long long

System::UInt64, unsigned __int64, unsigned long long

8 octets

System::NativeInt, ssize_t

System::NativeUInt, size_t

4 octets

8 octets

Types pointeur

Sur Windows 64 bits, la taille de tous les types pointeur est de 8 octets, deux fois la taille sur Windows 32 bits.

Types pointeur

C++/32

C++/64

System::Pointer, void*

4 octets

8 octets

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

Sur Windows 64 bits, l'alignement pour un __closure est de 16 octets, deux fois la taille sur Windows 32 bits.

__closure 8 octets 16 octets

Types à virgule flottante (y compris le type de données Extended)

Le type Extended a une précision inférieure de 2 octets sur Windows 64 bits.

Pour de plus amples informations, voir Le type de données Extended est de 2 octets plus petit sur les systèmes Windows 64 bits.

Types à virgule flottante

C++/32

C++/64

Commentaires

System::Single, float

4 octets

System::Double, double (C++)

8 octets

System::Extended, long double

10 octets

8 octets

TExtended80Rec est de 10 octets sur Win64

Real48

Non supporté

System::Comp

8 octets

System::Currency

8 octets

Autres types

Sur Win64, la taille des fichiers a été augmentée.

Autres types

C++/32  

C++/64  

Commentaires   

System::Boolean, bool

1 octet

System::ByteBool, unsigned char

1 octet

System::WordBool, unsigned short

2 octets

System::LongBool, unsigned int

4 octets

System::AnsiChar, char

1 octet

System::WideChar, wchar_t

2 octets

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

2 octets

System::ShortString

256 octets

Variant / OleVariant

16 octets

24 octets

Constantes

Constantes

C++/32  

C++/64  

MaxInt

$7fffffff

MaxLongInt

$7fffffff

Voir aussi