Ein Freund von mir meinte, es macht einen Unterschied, ob man Variablen nach dem Schema A oder Schema B definiert
Delphi-Quellcode:
// A
type
TMyRecordA = record
_1: Byte;
_2: Byte;
_3: Byte;
_4: Byte;
end;
// B
type
TMyRecordB = record
_1, _2, _3, _4: Byte;
end;
Er meinte nämlich, dass bei Variante B für die Vier 1 Byte Elemente nur 1 DWord (also wirklich 4 Bytes) reserviert werden und bei A eben für jedes Feld 4 Bytes (vlt weil dadurch - also 32 Bit - es schneller läuft?)
Stimmt das so? Falls ja, ist das "packed" genau dafür da, damit dies nicht geschieht?
also ist C = B, sofern A <> B
Delphi-Quellcode:
// C
type
TMyRecordC = packed record
_1: Byte;
_2: Byte;
_3: Byte;
_4: Byte;
end;
Edit:
Obwohl --> sizeof(TMyRecordA) = sizeof(TMyRecordB) = sizeof(TMyRecordC).