内部数据格式(Delphi)
目录
整数类型
独立于平台的无符号整数类型
字节,UInt8
Word和UInt16
固定UInt、基数和UInt32
用户界面64
独立于平台的有符号整数类型
从右边开始,找到第一个“1”。 反转该位左侧的所有位。
|
| |
|
|
|
短整数,整数8
SmallInt和Int16
固定Int、整数和Int32
国际64
平台相关整数类型
无符号整数NativeUInt
有符号整数NativeInt
LongInt和LongWord
|
整数子范围类型
如果两个边界都在-128..127范围内( 短Int ),变量存储为有符号字节。 如果两个边界都在0..255范围内( 字节 ),变量存储为无符号字节。 如果两个边界都在-32768..32767范围内( 小型Int ),变量存储为带符号的单词。 如果两个边界都在0..65535范围内( 单词 ),变量存储为无符号单词。 如果两个边界都在-2147483648范围内。2147483647( 固定Int 和 LongInt公司 在32位平台和64位Windows平台上),变量存储为有符号双字。 如果两个界限都在0..4294967295范围内( 固定UInt 和 长单词 在32位平台和64位Windows平台上),变量存储为无符号双字。 如果两个边界都在-2^63..2^63-1范围内( 国际64 和 LongInt公司 在64位iOS平台上),变量存储为有符号四字。 如果两个边界都在0..2^64-1范围内( 用户界面64 和 长单词 在64位iOS平台上),变量存储为无符号四字。
字符类型
AnsiChar(安西字符) 类型存储为无符号字节。 在Delphi 2007及更早版本中, 字符 被表示为 AnsiChar(安西字符) 。与一起使用的字符类型 短字符串 总是 AnsiChar(安西字符) 并存储在无符号字节值中。
默认的长字符串类型(字符串)现在是 Unicode字符串 ,其引用计数类似于 AnsiString公司 ,前一个默认的长字符串类型。 与旧代码的兼容性可能需要使用 AnsiString公司 类型。
宽字符串 由以下部分组成 WideChars公司 喜欢 Unicode字符串 ,但未计算引用数。
布尔类型
枚举的类型
真实类型
+/- 有效数 * 2^ 指数
Real48型
|
|
|
|
|
|
v(v) = (-1) 秒 * 2 (e-129) *(1.f)
单一类型
|
|
|
|
|
|
如果 0<e<255 ,那么 v=(-1) 秒 * 2 (e-127) *(1.f)
如果 e=0 和 f<>0 ,那么 v=(-1) 秒 * 2 (-126) *(0.f)
如果 e=0 和 f=0 ,那么 v=(-1) 秒 * 0
如果 e=255 和 f=0 ,那么 v=(-1) 秒 *Inf公司
如果 e=255 和 f<>0 ,那么 v(v) 是NaN
x<y x≤y x==y x>=y(x>=y) x>y
Double类型
|
|
|
|
|
|
如果 0<e<2047 ,那么 v=(-1) 秒 * 2 (e-1023) *(1.f)
如果 e=0 和 f<>0 ,那么 v=(-1) 秒 * 2 (-1022) *(0.f)
如果 e=0 和 f=0 ,那么 v=(-1) 秒 *0个
如果 e=2047 和 f=0 ,那么 v=(-1) 秒 *Inf公司
如果 e=2047 和 f<>0 ,那么 v(v) 是NaN
x<y x小于等于y x==y x>=y x>y
扩展类型
|
|
|
|
|
|
|
|
如果 0<=e<32767 ,那么 v=(-1) 秒 * 2 (e-16383) *(i.f) 如果 e=32767 和 f=0 ,那么 v=(-1) 秒 *Inf公司 如果 e=32767 和 f<>0 ,那么 v(v) 是NaN
Comp类型
货币类型
指针类型
短字符串 类型
长字符串类型
|
|
|
|
|
|
|
|
|
|
|
|
|
|
变量
目的地 : 字符串 ;
来源 : 字符串 ;
...
目的地 := “qwerty” ; //“destination”变量指向的新创建的内存块(包含“qwerty”字符串)的引用计数现在为1
...
来源 := “asdfgh” ; //“destination”变量指向的新创建的内存块(包含“asdfgh”字符串)的引用计数现在为1
目的地 := 来源 ; //包含“asdfgh”字符串的内存块的引用计数现在为2,并且由于包含“qwerty”字符串的存储块的引用数现在为0,因此内存块被释放。
变量
目的地 , 目的地2 , 目的地3 : 字符串 ;
目的地 := '示例字符串' ; //包含“示例字符串”的新创建内存块的引用计数为1。
目的地2 := 目的地 ; //包含“示例字符串”的内存块的引用计数现在为2。
目的地3 := 目的地 ; //包含“示例字符串”的内存块的引用计数现在为3。
宽字符串类型
|
|
|
|
|
|
|
|
设置类型
( 马克斯 第8部分)-( 分钟 分区8)+1
( E类 第8部分)-( 分钟 第8部分)
E类 模块8
静态数组类型
动态数组类型
|
|
|
|
|
|
|
|
|
|
|
|
记录类型
|
|
|
|
|
|
|
|
|
|
|
|
|
|
具有公共类型规范的字段的隐式封装
{$OLDTYPELAYOUT开}
类型
TMy记录 = 记录
一个 , B类 : 扩展 ;
C类 : 扩展 ;
结束 ;
{$OLDTYPELAYOUT关闭}
文件类型
类型
TFileRec(文件回收) = 拥挤的 记录
把手 : NativeInt公司 ;
模式 : 单词 ;
旗帜 : 单词 ;
案例 字节 属于
0 : ( RecSize(重新调整大小) : 红衣主教 ) ;
1 : ( BufSize(大小) : 红衣主教 ;
BufPos公司 : 红衣主教 ;
BufEnd公司 : 红衣主教 ;
BufPtr公司 : _PAnsiChr公司 ;
OpenFunc(开放式功能) : 指针 ;
InOutFunc(输入输出函数) : 指针 ;
FlushFunc软件 : 指针 ;
关闭Func : 指针 ;
用户数据 : 阵列 [ 1 .. 32 ] 属于 字节 ;
姓名 : 阵列 [ 0 .. 259 ] 属于 宽字元 ; ) ;
结束 ;
类型
TTextBuf(文本Buf) = 阵列 [ 0 .. 127 ] 属于 字符 ;
TTextRec(文本接收) = 拥挤的 记录
把手 : NativeInt公司 ;
模式 : 单词 ;
旗帜 : 单词 ;
BufSize(大小) : 红衣主教 ;
BufPos公司 : 红衣主教 ;
BufEnd软件 : 红衣主教 ;
BufPtr公司 : _PAnsiChr公司 ;
OpenFunc(开放式功能) : 指针 ;
InOutFunc(输入输出函数) : 指针 ;
FlushFunc软件 : 指针 ;
关闭Func : 指针 ;
用户数据 : 阵列 [ 1 .. 32 ] 属于 字节 ;
姓名 : 阵列 [ 0 .. 259 ] 属于 宽字元 ;
缓冲器 : TTextBuf(文本Buf) ; //
代码页 : 单词 ;
MBCS长度 : 短Int ;
MBCSBufPos公司 : 字节 ;
案例 整数 属于
0 : ( MBCS缓冲区 : 阵列 [ 0 .. 5 ] 属于 _AnsiChr公司 ) ;
1 : ( UTF16缓冲区 : 阵列 [ 0 .. 2 ] 属于 宽字元 ) ;
结束 ;
常数
fm已关闭 = 70万加元 ;
fm输入 = D7B1美元 ;
fm输出 = D7B2美元 ;
fm输入输出 = D7B3美元 ;
|
|
|
|
程序类型
类类型
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
类引用类型
变量类型
这个 V类型 的字段 TVar类型 类型具有 单词 (16位)大小。 V类型 在低12位中包含变量的类型代码(由 varType掩码 =$FFF 常数)。 此外 varArray(变量阵列) = $2000 可以设置位以指示变量是数组,并且 变量ByRef ( = $4000 )位可以设置为指示变量包含相对于值的引用。 这个 保留1 , 保留2 、和 保留3 ( 单词 大小)字段未使用。
The contents of the remaining 8 bytes (32-bit platform) or 16 bytes (64-bit platform) of a
如果两者都不是 varArray(变量数组) 也不是 变量ByRef 位已设置,变量包含给定类型的值。 如果 varArray(变量数组) 位,则变量包含指向 TVarArray阵列 定义数组的结构。 每个数组元素的类型由 变量类型掩码 中的位 V类型 字段。 如果 变量ByRef 位,则变量包含对由 变量类型掩码 和 varArray(变量数组) 中的位 V类型 字段。