Difference between revisions of "Cardinal/ru"

From Free Pascal wiki
Jump to navigationJump to search
(Created page with "{{Cardinal}} '''Cardinal''' - это целочисленный тип, определенный в качестве псевдонима типа '''DWord''' для 32-би...")
 
m (Fixed syntax highlighting)
 
Line 5: Line 5:
 
В системах на базе процессоров x86 тип '''Cardinal''' часто используется для хранения адресов памяти, как [[Pointer/ru|указатель]]:
 
В системах на базе процессоров x86 тип '''Cardinal''' часто используется для хранения адресов памяти, как [[Pointer/ru|указатель]]:
  
<syntaxhighlight>
+
<syntaxhighlight lang="pascal">
 
   var
 
   var
 
     anAddress: Cardinal;
 
     anAddress: Cardinal;

Latest revision as of 00:41, 11 February 2020

Deutsch (de) English (en) français (fr) русский (ru)

Cardinal - это целочисленный тип, определенный в качестве псевдонима типа DWord для 32-битных платформ. Также как и DWord (двойное слово) этот тип данных является 32-битным и интерпретируется как беззнаковое целое. Минимальное значение этого типа 0x0000000, а максимальное - 0xFFFFFFFF) (4,294,967,295).

В системах на базе процессоров x86 тип Cardinal часто используется для хранения адресов памяти, как указатель:

  var
    anAddress: Cardinal;
    anObject: TObject;
  begin
    anAddress := Cardinal(Self);
    with TObject(anAddress) do
    begin
      // anAddress is casted as a TObject.
    end;
  end;

Однако, из-за того, что в 32- и 64-битных системах порядок следования байт в памяти от младшего к старшему, использование типа Cardinal больше не рекомендуется для операций (арифметики) с адресами памяти (указателями). Вместо него рекомендуется использовать типы NativeInt или NativeUInt. Эти типы соответствуют размерам регистров центрального процессора, которые могут использоваться для работы с адресами памяти, и всегда будут иметь правильный размер. Например, в 64-битных операционных системах тип NativeUInt будет аналогичен типу UInt64 или QuadWord, а в 32-битных NativeUInt будет аналогичен типу DWord или Cardinal.

Типы данных
Простые типы Boolean | Byte | Cardinal | Char | Currency | Extended | Int64 | Integer | Longint | Pointer | Real | Shortint | Smallint | Word
Сложные типы Array | Class | Record | Set | String | Shortstring