Как основные типы Delphi связаны друг с другом?

Delphi уже давно поддерживает несколько базовых числовых типов, и мне было интересно, как они связаны друг с другом.

В Delphi 2007 я обнаружил эти объявления (некоторые из них противоречивы, некоторые - просто алиасы):

Types.pas:

DWORD = LongWord;
Largeint = Int64;

getmem.inc:

DWORD = Integer;

Windows.pas:

DWORD = Types.DWORD;
SHORT = Smallint;
UINT = LongWord;
ULONG = Cardinal;
LONGLONG = Int64;
TLargeInteger = Int64;
ULONGLONG = UInt64;

Это заставляет меня думать, что базовые числовые типы со знаком - SmallInt, Integer и Int64. Без знака есть Байт, СЛОВО и UInt64. Но в чем разница между Cardinal и LongWord? (Кстати, каков оригинальный и предназначенный корпус для этих типов?)

И есть ли тип для 8-разрядных целых чисел со знаком (Int8)?

// Int8 = ?unknown?;
UInt8 = Byte;
Int16 = SmallInt;
UInt16 = Word;
Int32 = Integer;
UInt32 = LongWord;
// Int64 already exists
// UInt64 already exists

Наконец, как мне определить Int и UInt, особенно в отношении совместимости C / C ++ и будущего перехода на другие платформы (возможно, также 64-битные)? (Конечно, связанный вопрос: как будут определены различные числовые типы в 64-битном Delphi?)

Ответы на вопрос(4)

Ваш ответ на вопрос