Futurebasic/语言/参考/begin record
✔ 外观 ✔ 标准 ✔ 控制台
begin record typeName recDefnBlock end record
2000 年 7 月 19 日(版本 3)
开始定义“真”记录类型(与使用 dim record...dim end record
语句定义的伪记录类型相对)。记录类型定义必须以 end record
语句结束。
begin record...end record
块不可执行,因此您无法通过将其放入条件执行结构(例如 long if/end if
)中来改变其效果。但是,您可以通过将其放在 compile long if
块中来有条件地将其包含或排除在程序之外。
在 begin record...end record
块中定义的记录类型在范围上是全局的,可以在块出现的位置以下的任何地方使用。
typeName |
是标识记录类型的名称。此名称在程序中所有定义的记录类型中必须是唯一的。 |
recDefnBlock |
是一个或多个 dim 语句的块。这些 dim 语句的语法与普通 dim 语句相同。但是,这些 dim 语句不是声明变量,而是声明此类型记录中字段的名称和类型。字段名称不必对此类型记录唯一(即,不同的记录类型可以使用与该记录类型相同的字段名称)。字段可以是任何数据类型,包括以前定义的记录类型。字段也可以是任何类型元素的数组。 |
您还可以使用以下“前导点”语法在记录定义块中,以声明“空”空间;即,记录中某些未被任何字段名称标识的字节
DIM .constant
...其中 constant
是一个整数字面量,或一个符号常量名(不带前导下划线字符)。这将声明指定数量的字节为“无名”。
您也可以在字段名称定义后使用“分号”语法,以指定在该字段的开头和下一个字段的开头之间应跳过多少字节。您可以使用它在记录中插入“无名”字节,或使字段在内存中重叠。有关分号语法的更多信息,请参阅 dim
语句。
使用 begin record...end record
定义记录类型后,可以使用它就像其他任何数据类型一样。这意味着
- 您可以将变量声明为
typeName
类型; - 您可以将数组声明为
typeName
类型; - 您可以将其他记录类型中的字段声明为
typeName
类型。
在 end record
语句以下的任何地方,可以使用 dim
语句,以及 as
关键字,以声明 typeName
类型的变量、数组或字段。例如,如果您定义了一个名为 Address
的记录类型,那么您可以执行以下操作
dim myHouse as Address, yourHouse as Address dim relatives(15) as Address begin record EmployeeInfo dim 50 name$ dim 9 socSecNo$ dim 20 hobbies$[9] dim empAddress as Address end record
在声明了给定记录类型的变量之后,可以使用“嵌入点”语法来引用记录中的各个字段。使用上面的例子
dim mySecretary as EmployeeInfo mySecretary.socSecNo$ = "456-78-9999"
使用伪记录数组时,始终在表达式末尾写数组下标,无论表达式指示的是整个记录还是其字段之一。例如,如果我们有一个名为 game
的伪记录数组,那么 game(7)
指的是数组中的第 7 个元素。如果该记录类型有一个名为 score
的字段,那么我们表示 game(7)
的 score
为
game.score(7) 'pseudo-record
示例
begin record StudentInfo dim 20 firstName$ dim 20 lastName$ dim 1 finalGrade$ end record dim myStudents(35) as StudentInfo 'This represents the final grade of myStudent #14: myStudents.finalGrade$(14)= "B"
真记录能够在每个记录中保存数组。这个特殊的嵌入式数组由使用方括号(而不是圆括号)表示各个元素来指定。方括号用于指定维度和访问子元素。
示例
begin record StudentInfo dim 20 firstName$ dim 20 lastName$ dim grades[100] end record dim myStudents(35) as StudentInfo myStudents.grades[1](5) = 96
在本示例的最后一行中,学生编号 5 的成绩元素编号 1 被设置为 96。
无特别备注。
dim record...dim end record; dim; begin union; sizeof; offsetof