Angenommen folgender Record:
Delphi-Quellcode:
TMyRecord = record
a: Byte;
// ( 3 Padding Bytes)
b: Integer;
end;
Der Record hat
SizeOf() = 8
denn zwischen
a
und
b
sind noch drei Byte Luft (zumindest unter
Win32).
Kann ich gezielt herausfinden dass von diesen 8 Bytes an Position [1], [2] und [3] Padding Bytes sind?
Ziel: Ich möchte für den
Unit-Test einer Hash-Funktion für Records gezielt Padding-Bytes setzen. Ich kann natürlich mit Methoden wie von
TBitConverter
oder
FillChar(..)
direkt in den Speicher schreiben, allerdings bekomme ich dann arge Probleme wenn der Record Referenztypen wie Strings oder Interfaces enthält denn dort steht dann arger Müll. Einzige Ausnahme wären Nullen, aber ich möchte die Padding-Bytes in zwei Records ja
unterschiedlich haben.