當前位置:編程學習大全網 - 編程軟體 - pascal編程語言中 聲明 record 類型中的 case 用法,多謝

pascal編程語言中 聲明 record 類型中的 case 用法,多謝

很簡單,case關鍵字後面跟上某種類型,然後分支的序號與該類型保持壹致就行,例如:

type

IntRec1 = packed record

ID: ShortString;

case Integer of

3: (

Param: Integer);

5: (

ParamLo: Word;

ParamHi: Byte);

end;

IntRec2 = packed record

ID: ShortString;

case Char of

'c': (

Param: Integer);

'e': (

ParamLo: Word;

ParamHi: Byte);

end;

IntRec3 = packed record

ID: ShortString;

case Boolean of

True: (

Param: Integer);

False: (

ParamLo: Word;

ParamHi: Byte);

end;

1、以上Param和ParamLo/ParamHi是變體結構的兩個不同分支,可以用Param域直接訪問該變體的整數部分(Integer),也可以用ParamLo域訪問該整數部分的低16位(Word),用ParamH域i訪問高8位(Byte)。

2、變體結構的大小,取決於占空間最大的分支,如本題中Integer(4字節)>Word(2字節)+Byte(1字節),因此本題三個變體結構大小均為256+4=260字節。

3、case後面的類型與分支標識的類型保持壹致就行了,分支標識隨便寫什麽都行(Integer與3、5,Char與'c'、'e',Boolean與True、False)。以上三種聲明方法都聲明的同壹種類型。

4、為了能精確訪問變體結構的域,壹般要加packed關鍵字,防止編譯器自動對齊。

5、變體結構在日常編程中用的不多,它大量使用在對Windows API的翻譯中。

  • 上一篇:python如何表示所有奇數相加
  • 下一篇:關於AVI的多種格式的區別
  • copyright 2024編程學習大全網