Sign in Join
Wiki copytemporary

Revision 2 of 2, by Trev on 2-10-2020. The page as it is now.

Cardinal/ru

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

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

pascal
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


From the Free Pascal wiki, page "Cardinal/ru", as the Internet Archive kept it on 2025-01-19, last changed on 2020-02-11. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.