全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:851
推到 Plurk!
推到 Facebook!

Binary檔案的疑問?

答題得分者是:yyu10
honder
一般會員


發表:1
回覆:1
積分:0
註冊:2005-03-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-03-15 11:24:04 IP:218.163.xxx.xxx 未訂閱
請問: 我利用delphi 4 和 7 編譯以下的程式,為何產生的binary檔案大小不ㄧ樣, delphi 4 為 12 byte,delphi 7 為 16 byte(中間多了4個byte),請問這是 作業系統的問題(delphi 4/ NT 4.0, delphi 7/ windows server 2003)還是 delphi本身的問題?該如何解決? 謝謝。 原始碼: TCustomer = record v1 : integer; v2 : double; end; procedure TForm1.Button1Click(Sender: TObject); var tempfile: file of Tcustomer; customer : TCustomer; begin customer.v1:= 1; customer.v2:= 1.0; assignfile(tempfile,'d:\tempfile.bin'); rewrite(tempfile); write(tempfile,customer); closefile(tempfile); close; end; 結果: delphi 4 01 00 00 00 00 00 00 00 00 00 F0 3F delphi 7 01 00 00 00 1D 07 01 A7 00 00 00 00 00 00 F0 3F 請問1D 07 01 A7 是什麼阿? 發表人 - honder 於 2005/03/15 11:50:24
yyu10
中階會員


發表:9
回覆:99
積分:96
註冊:2005-02-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-03-15 12:22:42 IP:203.14.xxx.xxx 未訂閱
这是Compiler优化的结果.    可以改成:
TCustomer = packed record
  v1 : integer;
  v2 : double;
end;
或者改变Delphi7中Compiler的选项, [Project]->[Options]->[Compiler]->[Code Generation]->[Record field alignment]: 选1 發表人 - yyu10 於 2005/03/15 12:30:38
honder
一般會員


發表:1
回覆:1
積分:0
註冊:2005-03-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-03-15 13:42:38 IP:218.163.xxx.xxx 未訂閱
謝謝你,yyu10。    
引言: 这是Compiler优化的结果. 可以改成:
TCustomer = packed record
  v1 : integer;
  v2 : double;
end;
或者改变Delphi7中Compiler的选项, [Project]->[Options]->[Compiler]->[Code Generation]->[Record field alignment]: 选1 發表人 - yyu10 於 2005/03/15 12:30:38
系統時間:2024-06-01 23:58:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!