Lazarus是基于FreePascal语言的,支持的数据类型如下:
字符或字符串都使用单引号,FPC不支持双引号
类型 | 范围 | 所占字节数 |
---|---|---|
Byte | 0 .. 255 | 1 |
Shortint | -128 .. 127 | 1 |
Smallint | -32768 .. 32767 | 2 |
Word | 0 .. 65535 | 2 |
Integer | smallint或longint | 2 或 4 |
Cardinal | longword | 4 |
Longint | -2147483648 .. 2147483647 | 4 |
Longword | 0..4294967295 | 4 |
Int64 | -9223372036854775808 .. 9223372036854775807 | 8 |
QWord | 0 .. 18446744073709551615 | 8 |
如果在表达式中混合使用不同类型的整数,Free Pascal会执行自动类型转换.
类型 | 范围 | 有效数字 | 所占字节数 |
---|---|---|---|
Real | 各平台不同 | ??? | 4 or 8 |
Single | 1.5E-45 .. 3.4E38 | 7-8 | 4 |
Double | 5.0E-324 .. 1.7E308 | 15-16 | 8 |
Extended | 1.9E-4932 .. 1.1E4932 | 19-20 | 10 |
Comp | -2E64+1 .. 2E63-1 | 19-20 | 8 |
Currency | -922337203685477.5808 | 922337203685477.5807 | 8 |
类型 | 所占字节数 | Ord(True) |
---|---|---|
Boolean | 1 | 1 |
ByteBool | 1 | 任意非零数 |
WordBool | 2 | 任意非零数 |
LongBool | 4 | 任意非零数 |
字符和字符串
char类型存储字符。记住要把字符用单引号括起来,像这样:'a' 'B' '+'。标准Pascal使用8位字符,而非16位字符,所以Unicode这种用来在一个统一编码体系里表示世界上所有语言字符集的编码是不受支持的。
WideChar是一种双字节字符(是属于DBCS双字节字符集的元素),能用来存储unicode字符。
PChar类型,PChar被定义为Char类型的指针,但它还具有一些额外的特性。对PChar类型最好的理解就是将其等价于C风格空结尾字符串,也就是说,PChar类型的变量实际上是一个指向Char数组的指针,并且这个数组以空字符(#0)结尾。Free Pascal支持PChar型常量的初始化和直接赋值。例如,下面的两段代码是等效的:
String类型:若干字符的一个序列,带有可选的尺寸规格。
ShortString类型是长度为255的string类型:string或string[length] 1 < length <= 255
AnsiStrings是一种没有长度限制的字符串类型。这种类型是引用计数的,而且能确保以空字符结尾。在计算机内部,一个ansistring被当做一个指针:字符串的实际内容存放在堆中,内容需要占用多少内存就分配了多少内存。
Widestrings(用于表示unicode字符串)和ansistring的实现方式非常相似:引用计数,空字符结尾的数组,不同的只是后者是用WideChars数组的方式来实现的,而非通常的Chars。
boolean类型只有两个值:TRUE和FALSE