本文主要是介绍Record和Packed record,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Record的内存分配,需要四字节对齐.
Packed record的内存分配,不需要四字节对齐.
type
Rec1 =record
A:Byte;//1字节
B:LongWord;//3字节
end;
Rec2=packed record
A:Byte;//1字节
B:LongWord;//4字节
end;
Sizeof(Rec1)值为8
Sizeof(Rec2)值为5
TRecord = Record
s: string[4]; //5字节
f: single; //4字节
c: char; //1字节
i: Integer; //4字节
end;
//Declare a packed record
TPackedRecord = Packed Record
s: string[4]; //5字节
f: single; //4字节
c: char; //1字节
i: Integer; //4字节
end;
按
Record的内存分配,需要四字节对齐.
Packed record的内存分配,不需要四字节对齐.
规则:
Record中,s 5字节要占两个四字节 (8)
f 4字节要占一个四字节 (4)
c 1字节要占一个四字节 (4)
i 4字节要占一个四字节 (4)
计 20字节
Packed Record不用这样排,所以就是 5+4+1+4=14字节
这篇关于Record和Packed record的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!