Free Pascal 平台无关的原生数据类型

可能是历史原因,Free Pascal 编程环境中的数据类型数量浩瀚如繁星,其中又有很多类型是运行时定义的别名。为了去繁从简,本文整理了 Free Pascal 编译器支持的平台无关且和其他语言二进制兼容的原生数据类型。

无符号整型

类型别名长度(位)范围
ByteUInt880 .. 255
WordUInt16160 .. 65535
LongWordUInt32, Cardinal, DWord320 .. 4294967295
QWordUInt64640 .. 18446744073709551615

有符号整型

类型别名长度(位)范围
ShortIntInt88-128 .. 127
SmallIntInt16, Integer16-32768 .. 32767
LongintInt3232-2147483648 .. 2147483647
Int6464-9223372036854775808 .. 9223372036854775807

浮点类型

类型别名长度(位)范围
Single321.5E-45 .. 3.4E38
Double645.0E-324 .. 1.7E308

Single, DoubleExtended 类型都是 IEEE 754 格式。按照文档的描述,其中 Extended 类型长度应为 80 位(10 字节),且只有 Intel x86 平台支持(不包括 Windows x86-64 版本)。对于不支持该类型的平台,Extended 类型指向 Double 类型。

另外,Currency 其实是一个 64 位整数类型,只是其十进制的最后 4 位表示小数。

布尔类型

类型别名长度(位)范围
Boolean8True, False
ByteBool8True, False
WordBool16True, False
LongBool32True, False

字符类型

类型别名长度(位)范围
Char8
WideCharUnicodeChar, WChar, UCS2Char16