标准变量类型和限制。
数值类型
类型 | 大小在位 | 格式 | 最小值 | 最大值 | 字面后缀 | SIG。数字 |
BYTE | 8 | 有符号整数 | -128 | +127 | | 2+ |
UBYTE | 8 | 无符号整数 | 0 | +255 | | 2+ |
SHORT | 16 | 有符号整数 | -32768 | +32767 | | 4+ |
USHORT | 16 | 无符号整数 | 0 | 65535 | | 4+ |
LONG | 32 | 有符号整数 | -2147483648 | +2147483647 | &, l | 9+ |
ULONG | 32 | 无符号整数 | 0 | 4294967295 | ul | 9+ |
INTEGER | 32/64 [*] | 有符号整数 | [*] | [*] | % | [*] |
UINTEGER | 32/64 [*] | 无符号整数 | [*] | [*] | u | [*] |
LONGINT | 64 | 有符号整数 | -9 223 372 036 854 775 808 | +9 223 372 036 854 775 807 | ll | 18+ |
ULONGINT | 64 | 无符号整数 | 0 | +18 446 744 073 709 551 615 | ULL | 19+ |
SINGLE | 32 | 浮点 | [**]+/-1.401 298 E-45 | [**]+/-3.402 823 E+38 | !, f | 6+ |
DOUBLE | 64 | 浮点 | [**]+/-4.940 656 458 412 465 E-324 | [**]+/-1.797 693 134 862 316 E+308 | #, d | 15+ |
[*] 整数和UInteger数据类型随平台而异,与指针的大小相匹配。
[**] 浮点类型Single和Double的最小值和最大值分别为最接近零的值,最接近正负无穷大的值。
字符串类型
类型 | 字符大小(字节) | 最小尺寸(以字符) | 最大尺寸(以字符) | 字面后缀 |
string | 1 | 0 | [**]+2147483647 | $ |
zstring | 1 | 0 | [**]+2147483647 | [N/A] |
WSTRING | [*] | [*]0 | [*,**]+2147483647 | [N/A] |
[*] Unicode或“wide”,字符大小和可用性随平台而异。
[**] 所有运行时库字符串过程都会获取大小和位置的整数值。 实际的最大尺寸将随存储位置和/或平台而变化(较小)。
阵列
最大下标范围 | 每个维度的最大元素 | 最小/最大尺寸 | 最大大小(以字节为单位) |
[*][-2147483648, +2147483647] | [*]+2147483647 | 1/9 | [*]+2147483647 |
[*] 所有运行时库数组过程都会为下标和索引生成整数值。 实际限制将随维度数量,元素大小,存储位置和/或平台而变化(较小)。
参考
ProPgIdentifierRules用于变量的后缀
ProPgLiterals用于文字/数字的后缀