1.传统的记录类型:
1.1 类型声明语法:
Type
TmyRec = Record
meber1: type1;
meber2: type2;
......
meberN: typeN;
End;
1.2 变量声明语法:
分两种: 一种用记录类型的名称定义,另一种使用一个记录直接定义
例如:
Type
Tmyrec = record
x: integer;
y: integer;
end;
var
myrec: Tmyrec;
或者
var
myrec : record
x: integer;
y: integer;
end;
1.3 变量的赋值
可以对记录的成员直接赋值,如:
myrec.x =1;
若两个记录的类型一样,则可以把一个记录直接赋值给另一个记录,如:
var
myrec1,myrec2:Tmyrec;
....
myrec1:=myrec2;
1.4 变体记录
语法:
Type
Tmyrec = record
字段1:类型1;
字段2:类型1;
……
字段M:类型M;
case [tag:] 有序类型 of
常量1:(字段声明);
常量2:(字段声明);
.....
常量N:(字段声明)[;]
end;
说明:
(1) Case 前的部分为普通记录声明,从Case开始到end之间的部分均是变体记录的专有部分
(2) 变体记录部分必须置于所有普通成员之后
(3) 其中以方括号“[]”围起来的内容均可省略
(4) 其中的所有常量必须是指定的有序类型
(5) 其中每个常量可包含多个常量值,中间以逗号隔开
(6) 括号中的字段声明也可以包含多个字段声明,中间以分号隔开。
(7) 字段声明不能为长字符串,动态数组,变体类型,接口以及包含这些类型的其他结构类型如记录,数组等
(8) 括号中的最后一个字段可以不带分号
例如:
Type
s:string;
case Integer of
1:(f1:integer;
f2:string[4];)
2,3,5:(f3:string[8]);
end;
注:变体记录与absolute的区别为,变体记录共用有效的内存而absolute只是共用首内存。