谁能给我讲讲pascal里的压缩数组是怎么一回事?

最好能说一下它的原理和用途?
[14 byte] By [abeng_2001-风间苍月] at [2008-5-29]
# 1
例如记录:
MyRecord = Record
I: Integer;
C: Char;
end;

var OneMyRecord: MyRecord;

SizeOf(OneMyRecord.I) //为4
SizeOf(OneMyRecord.C) //为4 (因为不压缩,编译器将C的长度和I的长度自动对齐)

如果定义为压缩:
MyRecord = Packed Record
I: Integer;
C: Char;
end;
则:
SizeOf(OneMyRecord.I) //为4
SizeOf(OneMyRecord.C) //为1

—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '假如上述代码中出现“OA”等字样,删除它们';
I.Desire := '加不加分随你';
—————————————————————————————————

# 2
这是packed record ,
那么packed array
都有什么数据类型能够定义为packed
abeng_2001-风间苍月 at 2007-10-27 > top of Msdn China Tech,Delphi,语言基础/算法/系统设计...
# 3
压缩和不压缩有什么区别
在计算机内存中都怎么存放的?
abeng_2001-风间苍月 at 2007-10-27 > top of Msdn China Tech,Delphi,语言基础/算法/系统设计...
# 4
packed 的类型是按照各个数据类型实际长度存放的, not Packed 的则是按照计算机的字方式对齐的。
CloneCenter-复制中心 at 2007-10-27 > top of Msdn China Tech,Delphi,语言基础/算法/系统设计...
# 5
是不是有点像C语言中共用体结构?
caike-ck at 2007-10-27 > top of Msdn China Tech,Delphi,语言基础/算法/系统设计...