在阅读RTTI的源码的时候,我看到TTypeData结构,是个可变记录类型,而且是采用packed record的类型,因此我试着写了下record和packed record有啥不同。
procedure TForm3.btn1Click(Sender: TObject);
begin
showmessage(inttostr(SizeOf(TRec)) + ':' + inttostr(Sizeof(TRec1)));
end;
end.
会看到显示的结果是第一个大小为16,第二个大小为15,这是因为,window分配内存是以四字节一次分配的,而采用了packed表示采用字节分配,所以TRec1的sizeof会是15