Como os tipos básicos de Delphi se relaciona
Delphi há muito tempo suporta alguns tipos numéricos básicos e eu queria saber como eles estão relacionados entre s
o Delphi 2007, encontrei estas declarações (algumas são conflitantes, outras são meras pseudônimos
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;
Isso me leva a pensar que os tipos numéricos assinados de base são SmallInt, Inteiro e Int64. Sem assinatura, há Byte, WORD e UInt64. Mas qual é a diferença entre Cardinal e LongWord? (A propósito, qual é o invólucro original e pretendido para esses tipos?)
E existe um tipo para números inteiros de 8 bits assinados (Int8
// Int8 = ?unknown?;
UInt8 = Byte;
Int16 = SmallInt;
UInt16 = Word;
Int32 = Integer;
UInt32 = LongWord;
// Int64 already exists
// UInt64 already exists
Em última análise, como devo definir Int e UInt, especialmente no que diz respeito à compatibilidade com C / C ++ e uma futura mudança para outras plataformas (possivelmente também de 64 bits)? (Uma questão relacionada é, obviamente, como os vários tipos numéricos serão definidos no Delphi de 64 bits?)