我糊涂了!~大家帮帮忙!~ ( 积分: 50 )

  • 主题发起人 主题发起人 zgwxldw
  • 开始时间 开始时间
Z

zgwxldw

Unregistered / Unconfirmed
GUEST, unregistred user!
type
T_DDInfo = record
DDName:array [0..$b] of Char;
ddtmp:Word;
dd_dv:longword
end;

var
info:T_DDInfo;
:
IntToStr(SizeOf(info) 多长?

type
T_DDInfo = record
DDName:array [0..$b] of Char;
ddtmp:byte;
dd_dv:longword
end;
怎么一样长呢?
应该是 18 ,17 吧!怎么都是 20 ?
 
分配大小时会进行结构的边界修正。你不能简单的累加。
 
详细点 给分!~
 
问题找到谢谢!~
这是因为DELPHI的编译器默认会对结构进行数据对齐.这样有利于速度.
但只要加上packed就不会(如上)这样有利于结约内存空间,但速度会慢一点

type
T_DDInfo =packed record
DDName:array [0..$b] of Char;
ddtmp:byte;
dd_dv:longword
end;
给分!~
 
接受答案了.
 

Similar threads

I
回复
0
查看
1K
import
I
I
回复
0
查看
686
import
I
I
回复
0
查看
562
import
I
后退
顶部