packed record 和 record有何区别? packed record 和 record有何区别? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 packed record会对数据进行压缩type // Declare an unpacked record TDefaultRecord = Record name1 : string[4]; floater : single; name2 : char; int : Integer; end; // Declare a packed record TPackedRecord = Packed Record name1 : string[4]; floater : single; name2 : char; int : Integer; end;var defaultRec : TDefaultRecord; packedRec : TPackedRecord;begin ShowMessage('Default record size = '+IntToStr(SizeOf(defaultRec))); ShowMessage('Packed record size = '+IntToStr(SizeOf(packedRec)));end; Default record size = 20 Packed record size = 14 typeRec1 =record A:Byte;//1字节 B:LongWord;//3字节end;Rec2=packed record A:Byte;//1字节 B:LongWord;//4字节end;rec1的内存分配,需要四字节对齐.0---1---2---3---4--5--6--7--8|A | | B |-----------------------------rec2的内存分配,不需要四字节对齐.0---1---2---3---4--5|A | B |--------------------Sizeof(Rec1)值为8Sizeof(Rec2)值为5 Packed Record类的数据各个成员共占一个Packed Record类型TPackedRecord = Packed Record name1 : string[4]; c : char; int : Integer; end;varpc:TPackedRecord 你对其中的int 赋值 2,对c赋值为'a'则内存情况为120000 ......... 120001 ......... 字符c的地地址而从120000到120003为int的地址而 Record 则是每个成员各自占有单独内存区 太喜欢delphpi了.可惜一直没时间学 adoquery1批量删除数据 走过,路过,别错过,请各位哥哥帮帮小弟啊!小问题的啦 高分求救:如何吧rave报表中的计算字段的值传到delphi中去? treeview1中如何知道单击的是节点还是数据项? “最近使用的文件”或“Reopen"的功能是怎么实现的? 如何使用:TINIfile进行文件操作? 如何获取数据集中某字段纪录的最大长度 有关注册表加一个dword值 发送email出现的错误,为什么 richedit组件显示word文挡,出现乱码,什么原因。 100分证求vfp汉字字段问题!
// Declare an unpacked record
TDefaultRecord = Record
name1 : string[4];
floater : single;
name2 : char;
int : Integer;
end;
// Declare a packed record
TPackedRecord = Packed Record
name1 : string[4];
floater : single;
name2 : char;
int : Integer;
end;
var
defaultRec : TDefaultRecord;
packedRec : TPackedRecord;
begin
ShowMessage('Default record size = '+IntToStr(SizeOf(defaultRec)));
ShowMessage('Packed record size = '+IntToStr(SizeOf(packedRec)));
end; Default record size = 20
Packed record size = 14
Rec1 =record
A:Byte;//1字节
B:LongWord;//3字节
end;Rec2=packed record
A:Byte;//1字节
B:LongWord;//4字节
end;rec1的内存分配,需要四字节对齐.
0---1---2---3---4--5--6--7--8
|A | | B |
-----------------------------rec2的内存分配,不需要四字节对齐.
0---1---2---3---4--5
|A | B |
--------------------Sizeof(Rec1)值为8Sizeof(Rec2)值为5
类的数据各个成员共占一个Packed Record类型TPackedRecord = Packed Record
name1 : string[4];
c : char;
int : Integer;
end;
var
pc:TPackedRecord
你对其中的int 赋值 2,对c赋值为'a'
则内存情况为
120000 .........
120001 ......... 字符c的地地址
而从120000到120003为int的地址而 Record 则是每个成员各自占有单独内存区