Fenner
Referência

Tipos embutidos

Todos os tipos numéricos, lógicos e de caractere, com o tamanho e a faixa de cada um.

Inteiros com sinal#

TipoBytesFaixa
Int81−128 … 127
Int162−32 768 … 32 767
Int324−2 147 483 648 … 2 147 483 647
Int648−9 223 372 036 854 775 808 … 9 223 372 036 854 775 807
Int12816±1,7 × 10³⁸
Int25632±5,8 × 10⁷⁶
Int51264±6,7 × 10¹⁵³
Int1024128±9 × 10³⁰⁷
Int2048256±1,6 × 10⁶¹⁶
Int4096512±5,2 × 10¹²³²

Inteiros sem sinal#

TipoBytesFaixa
UInt810 … 255
UInt1620 … 65 535
UInt3240 … 4 294 967 295
UInt6480 … 18 446 744 073 709 551 615
UInt128 … UInt409616 … 5120 … 2ⁿ − 1

NativeInt e NativeUInt têm o tamanho do ponteiro (8 bytes no Windows de 64 bits).

Reais#

TipoBytesObservação
Float162guarda estreito e calcula em Float64
Float324guarda estreito e calcula em Float64
Float648o double; o tipo do literal com ponto
Float12816por software (as funções transcendentais ainda não estão ligadas)

Monetários (ponto fixo com sinal)#

TipoBytesCasas decimais
Currency811
Currency1622
Currency3243
Currency6484
Currency1281612
Currency2563232
Currency5126464
Currency1024128128
Currency2048256256
Currency4096512512

Veja Tipos para a aritmética e o arredondamento.

Lógicos e caracteres#

TipoBytesObservação
Bool8 Bool16 Bool32 Bool641, 2, 4, 8True/False; WriteLn imprime TRUE/FALSE
AChar1caractere de um byte
WChar2caractere UTF-16

Cadeias#

TipoCodificação
LStringbytes, sem codificação declarada
U8StringUTF-8
UStringUTF-16
WStringUTF-16, um BSTR de verdade (COM)
SString[N]cadeia curta de até N bytes; o tamanho no byte 0

Outros#

TipoO que é
Pointerponteiro sem tipo (o mesmo que ^void)
^Tponteiro tipado
Variant, OleVariantrecords gerenciados da RTL
?To anulável de T (TNullable<T>)
TObjecta raiz das classes
TArray<T>vetor dinâmico genérico da RTL
set of Tconjunto de até 64 elementos
array of T, array[a..b] of Tvetor dinâmico e estático

Do Delphi para o Fenner#

DelphiFenner
IntegerInt32
CardinalUInt32
ByteUInt8
WordUInt16
BooleanBool8
CharWChar
AnsiCharAChar
SingleFloat32
Double, RealFloat64
ExtendedFloat64 (ou Float128, se precisar da largura)
CurrencyCurrency64
stringUString (UTF-16); o compilador sugere LString (bytes)
AnsiStringLString
WideStringWString
PCharPWChar

Escrever um nome antigo é erro, e o compilador aponta o novo quando sabe: o tipo "Real" foi renomeado para "Float64", o tipo "Currency" foi renomeado para "Currency64", o tipo "String" foi renomeado para "LString".