Difference between revisions of "Cardinal/fr"

From Lazarus wiki
Jump to navigationJump to search
(Created page with "Cardinal is an integer type defined as an alias for DWord under a 32bit plateform. Like the DWord (double word) type it's a 32 bit data interpreted as an unsigned integer. As ...")
 
Line 1: Line 1:
Cardinal is an integer type defined as an alias for DWord under a 32bit plateform. Like the DWord (double word) type it's a 32 bit data interpreted as an unsigned integer. As it's only used on 32 bit systems, its minimal value is 0x0000000 and its maximal value 0xFFFFFFFF.
+
Cardinal est un type entier défini comme un alias pour DWord sur les plates-formes 32bits. Comme un type DWord (double mot), c'est une donnée de 32 bits interprétée comme un entier non signé. Il est ainsi seulement utilisé sur les systèmes 32bits, sa valeur minimale est 0x0000000 et sa valeur maximale 0xFFFFFFFF.
  
On the x86 systems Cardinal type is often used to hold a memory address, like a pointer:
+
Sur les systèmes x86, le type Cardinal est souvent utilisé pour manipuler une adresse mémoire, comme un pointeur:
  
 
<code>
 
<code>
Line 11: Line 11:
 
     with TObject(AnAddress) do
 
     with TObject(AnAddress) do
 
     begin
 
     begin
       // AnAddress is casted as a TObject.
+
       // AnAddress est converti en un TObject.
 
     end;
 
     end;
 
   end;
 
   end;
  </code>
+
</code>
  
However, because of the 32 and 64 bits little endian systems, using the Cardinal type is not recommended anymore for memory/pointer operations/arithmetic.
+
Pourtant, à cause des systèmes petit-boutiste (little endian), il n'est pas recommandé d'utiliser le type Cardinal pour la mémoire/les opérations sur les pointeurs/l'arithmétique.
Actually it's rather recommended to use '''NativeInt''' or '''NativeUInt''' types. These types will match to a CPU register wide data which can be used to encode a memory address and so will be always valid. For example under a 64bit OS, a NativeUInt will be like a UInt64 or a QuadWord and under a 32 bit OS, a NativeUInt will be like a DWord or a Cardinal.
+
Actuellement, il est plutôt recommandé d'utiliser les types '''NativeInt''' ou '''NativeUInt'''. Ces types correspondront à une donnée de registre CPU qui peut être utilisé pour coder une adresse mémoire et ainsi sera toujours valide. Par exemple, sous un système d'exploitation 64bits, un NativeUInt sera comme un UInt64 ou un Quadword et sous un SE 32 bits, un NativeUInt sera comme un DWord ou un Cardinal.
  
{{Data types}}
+
{{Data types/fr}}

Revision as of 18:46, 22 April 2014

Cardinal est un type entier défini comme un alias pour DWord sur les plates-formes 32bits. Comme un type DWord (double mot), c'est une donnée de 32 bits interprétée comme un entier non signé. Il est ainsi seulement utilisé sur les systèmes 32bits, sa valeur minimale est 0x0000000 et sa valeur maximale 0xFFFFFFFF.

Sur les systèmes x86, le type Cardinal est souvent utilisé pour manipuler une adresse mémoire, comme un pointeur:

 var
   AnAddress: Cardinal;
   AnObject: TObject;
 begin
   AnAddress := Cardinal(Self);
   with TObject(AnAddress) do
   begin
     // AnAddress est converti en un TObject.
   end;
 end;

Pourtant, à cause des systèmes petit-boutiste (little endian), il n'est pas recommandé d'utiliser le type Cardinal pour la mémoire/les opérations sur les pointeurs/l'arithmétique. Actuellement, il est plutôt recommandé d'utiliser les types NativeInt ou NativeUInt. Ces types correspondront à une donnée de registre CPU qui peut être utilisé pour coder une adresse mémoire et ainsi sera toujours valide. Par exemple, sous un système d'exploitation 64bits, un NativeUInt sera comme un UInt64 ou un Quadword et sous un SE 32 bits, un NativeUInt sera comme un DWord ou un Cardinal.

Types de données
Types de données simples Boolean | Byte |Cardinal | Char | Currency | Extended | Int64 | Integer | Longint | Pointer | Real | Shortint | Smallint | Word
Types de données complexes Array | Class | Record | Set | String | ShortString