关于声明的问题,请高手赐教(100分)

  • 主题发起人 主题发起人 redqiao
  • 开始时间 开始时间
R

redqiao

Unregistered / Unconfirmed
GUEST, unregistred user!
type
TTest=record



type
TTest=packed record

有什么区别?
 
表示是否对齐,请看: http://www.delphibbs.com/delphibbs/dispq.asp?lid=1015017
 
编译器的对齐方式不同
默认是按照4字节对齐(因为多数都是32位的计算机),不足的补充到4的倍数长度
加packed关键字就是紧凑对齐方式。
在Delphi的选项里可以选择默认对齐方式。1,2,4,8等4钟对齐方式。
工程菜单-》Options->compliter 有一个record field alignment就是该选项


 
type
TT=record
a:BYTE;
b:WORD;
end;
NN=record
a:BYTE;
b:DWORD;
end;
sizoef(TT)=4,而不是3。sizeof(NN)=8而不是5。不知是否是这样?如果加上packed关键字后尺寸会怎样?
 
你自己作一下,把sizoef(XX)输出就能更好的理解了
 
是否是否对其。
效果:
没有packed,节省时间,浪费空间
有Packed,节省控件,浪费时间
 
后退
顶部