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