Futurebasic/语言/参考/begin record
✔ 外观 ✔ 标准 ✔ 控制台
begin record typeName recDefnBlock end record
2000年7月19日 (Release 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