至此,我们所使用的数据类型都是基本的类型,如INT、NUMBER、STRING等。但InstallScript还允许用户按一定的规则进行数据结构体类型的构造。同时提供指针的概念,方便用户对变量的地址进行操作。
2.7.1 用typedef定义一个结构体 一个结构体是由多种类型的数据组成的整体。组成结构的各个分量称为结构体的数据成员(简称为成员)。结构体是InstallScript提供的构造复杂数据类型的唯一手段。
1. 定义结构体 结构体定义的格式为:
typedef 结构体名
begin
成员定义1;
成员定义2;
...
成员定义n;
end;
结构体定义是以关键字typedef开始的,结构体名应是一个有效合法的标识符。在结构体中的每个成员都必须通过"成员定义"来确定成员名及其类型。
例如: typedef EMPLOYEE
begin
STRING szName[50]; // 姓名
STRING szDepartment[50]; // 部门
NUMBER nExtension; // 电话分机号码
end;
其中,EMPLOYEE是自己定义的结构体名,该结构有3个成员变量。一旦结构体类型定义后,就可以定义其结构体变量。
例如: EMPLOYEE structEmployee;
使用结构体类型时要注意: (1) 不能用赋值运算符将一个结构内容赋予另一个结构,如newstruct = struct1;
(2) 成员变量类型若是STRING,则必须指定其大小;
(3) 不能在函数体内部定义一个结构体类型;
(4) 成员变量类型或结构体本身不能使用BYREF关键字,数据的传递用指针来进行。