Zitat von
Oxmyx:
Einfach gesagt: 32 Bit große Typen werden von der CPU schneller verarbeitet.
Aus genau diesem Grund richtet Delphi die Strukturmitglieder standardmäßig auch auf 4 Byte aus:
Delphi-Quellcode:
TTest = record
a: Byte;
b: Integer;
end;
belegt standardmäßig nicht etwa 5 Byte, wie man vermuten würde, sondern 8 Byte, weil das einzelne Byte auf 32 Bit ausgerichtet wird.
Und packed record hebt die Ausrichtung wieder auf:
Delphi-Quellcode:
TTest = packed record
a: Byte;
b: Integer;
end;
Und sorgt so dafür dass dieser record auch nur 5 Byte groß ist.