2.1基本数据类型
从Pascal到Delphi,语言中最基本的数据类型如表中所示。
分类 | 数据类型 | 长度 | 相关类型 | 备注 |
简单类型 | 整数类型(integer) | 1-8 | Integer Cardinal Shortint Smallint Bongpint Longword Byte Word Int64 | 除lnt64之外,所有的整数类型在内存中的存放都非常简单。由于使用 |
字符类垫(charncter) | 1-2 | AnsiChar WideChar | 标准化存储。一个李符与一个字节并非同一概念 | |
布尔类型(Boolean) | 1-4 | Boolean ByteBool wordBool LongBool | 标准Pascal中,Boolean是以一个字节存放的,其他长度的布尔类型,通常只在多语言交互时使用 | |
枚举类型(enumerated) | 1-4 | 参见编译指示字$MINVENUMSIZE或$Z | ||
子界类型(Subrange) | ||||
实数类型(real) | 4-10 | Real48 Single Currency Double Extended Comp | 六字节的Real48类型在Delphi较早的版本中叫做Real.该类型是为了保持向后兼容而存在的 | |
字符串 | 字符串类型(String) | 1-256/4 | ShortString | 对于短字符串,长度为1~256字节。 |
构造类型 | 集合类型(set) | 1-32 | 集合的元素最多为256个,以位数组的格式存放 | |
数组类型(array) | 4 | 静态数组与动态数组的数据结构实现完全不同。动态数组为4字节,静态数组的长度取决于具体定义 | ||
记录类型(record) | 取决于具体定义 | |||
文件类型(file) | 332/460 | 文件变量以332字节的记录存在。文本文件变量的记录占460字节 | ||
指针类型 | 指针类型(pointer) | 4 | PInteger PPointer | |
过程类型 | 过程类型(procedure) | 4 |
- 这里的“长度”仅指参考长度(字节),在代码中可以用Size0f()来取得该值。一些较复杂的数据类型,以及几乎所有的用户定义类型的长度,都在表中所列出的“长度”值之外。同时,这里的“长度”值还表明:如果该数据类型的变量被声明,则系统“至少”为该变量初始化的字节数。