最好能说一下它的原理和用途?

解决方案 »

  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
      

  3.   

    packed 的类型是按照各个数据类型实际长度存放的, not Packed 的则是按照计算机的字方式对齐的。