关于record类型的sizeof问题(100分)

  • 主题发起人 主题发起人 徐荣
  • 开始时间 开始时间

徐荣

Unregistered / Unconfirmed
GUEST, unregistred user!
定义一个记录类型
type
test=record
v1:string[10];
v2:string[3];
v3:integer;
end;
那么sizeof(test)应该等于11+4+4=19,但是delphi返回值居然是20!
经过测试,当record中的成员全为string类型或只有一个成员时,sizeof的返回值正确的,但当record中的成员非全string类型时,sizeof永远返回一个4的倍数值!!
  从delphi4到delphi5都有这个问题,打了补丁也不行,这是怎么回事?
  是有什么参数需要设置,还是BUG?
  急盼解答!!
 
Really? Let me try
 
改:
test=record

test=packed record
试一试
 
说明:delphi为D版,在win98和win2000下运行。
 
cAkk,谢谢你。OK。
不过我还不明白为什么。回去查资料吧!
 
后退
顶部