Free Pascal 平台无关的原生数据类型
可能是历史原因,Free Pascal 编程环境中的数据类型数量浩瀚如繁星,其中又有很多类型是运行时定义的别名。为了去繁从简,本文整理了 Free Pascal 编译器支持的平台无关且和其他语言二进制兼容的原生数据类型。
无符号整型
类型 | 别名 | 长度(位) | 范围 |
---|---|---|---|
Byte | UInt8 | 8 | 0 .. 255 |
Word | UInt16 | 16 | 0 .. 65535 |
LongWord | UInt32, Cardinal, DWord | 32 | 0 .. 4294967295 |
QWord | UInt64 | 64 | 0 .. 18446744073709551615 |
有符号整型
类型 | 别名 | 长度(位) | 范围 |
---|---|---|---|
ShortInt | Int8 | 8 | -128 .. 127 |
SmallInt | Int16, Integer | 16 | -32768 .. 32767 |
Longint | Int32 | 32 | -2147483648 .. 2147483647 |
Int64 | 64 | -9223372036854775808 .. 9223372036854775807 |
浮点类型
类型 | 别名 | 长度(位) | 范围 |
---|---|---|---|
Single | 32 | 1.5E-45 .. 3.4E38 | |
Double | 64 | 5.0E-324 .. 1.7E308 |
Single
, Double
和 Extended
类型都是 IEEE 754 格式。按照文档的描述,其中 Extended
类型长度应为 80 位(10 字节),且只有 Intel x86 平台支持(不包括 Windows x86-64 版本)。对于不支持该类型的平台,Extended
类型指向 Double
类型。
另外,Currency
其实是一个 64 位整数类型,只是其十进制的最后 4 位表示小数。
布尔类型
类型 | 别名 | 长度(位) | 范围 |
---|---|---|---|
Boolean | 8 | True, False | |
ByteBool | 8 | True, False | |
WordBool | 16 | True, False | |
LongBool | 32 | True, False |
字符类型
类型 | 别名 | 长度(位) | 范围 |
---|---|---|---|
Char | 8 | ||
WideChar | UnicodeChar, WChar, UCS2Char | 16 |