線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1123
推到 Plurk!
推到 Facebook!

variant record 跟一般的record是不是可以等價互換??

答題得分者是:ha0009
chimera
初階會員


發表:62
回覆:78
積分:28
註冊:2003-03-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-06-20 21:42:33 IP:211.76.xxx.xxx 未訂閱
對於record我有一些疑問:
這三者請問有何不同??
Type  
  Ttest1 = Record
    case integer of
      1 :  (a1:integer);
      2 :  (a2:byte);
      3 :  (a3:string);
  end;      Ttest2 = Record
    case integer of
      1 :  (a1:integer ; a2:byte);
      2 :  (a3:string);
  end;      Ttest3 = Record
    a1 : integer;
    a2 : byte;
    a3 : string;
  end;    1.上面這三個有什麼差別??我不太了解,前面兩個是不是三個變數共用同一塊記憶體??
2.case "integer" of 中的integer是不是只要是整數型態都可以??因為我試驗byte, word替換好像都沒差耶。
3.另外是不是可以不用從0開始??因為我用其他數字好像也是可以的    
ha0009
版主


發表:16
回覆:507
積分:639
註冊:2002-03-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-06-20 22:41:42 IP:61.56.xxx.xxx 未訂閱
你好: 結構中宣告 Case of 猶如 C 中宣告 Union 一樣,下面我舉例子說明。    U1 = packed record         A : byte;         B : word;         C : String [2]; end; 記憶體排列 ABBCC  共需 5 byte    U2 = packed record         case byte of                 1 : (k1 : byte);                 2 : (k2 : word);                 3 : (k3 : String [2]); end; 記憶體排列 A BB CC  共需 2 byte    U3 = packed record         case byte of                 1 : (k1 : byte; k2 : word);                 2 : (k3 : String [2]); end; 記憶體排列 ABB CC  共需 3 byte    以上資料排列的 A 代表 子項 A 在記憶體的位置,以此類推。希望能幫助你。
chimera
初階會員


發表:62
回覆:78
積分:28
註冊:2003-03-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-06-20 22:53:58 IP:211.76.xxx.xxx 未訂閱
引言: 以上資料排列的 A 代表 子項 A 在記憶體的位置,以此類推。希望能幫助你。 < face="Verdana, Arial, Helvetica"> 了解了,謝謝,那麼case integer of ,擺integer型態的就可以,底下的數字也不限從哪個開始,只要數字在型態範圍內就可以了吧 另外,你使用了packed這個有什麼差別嗎?? 發表人 - Chimera 於 2003/06/20 22:54:39
系統時間:2024-05-17 4:15:31
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!