afaik besitzt ein Record keinen. Elemente eines Records besitzen lediglich offsets, die wie eine Variable direkt übersetzt werden.
Ein Blick ins CPU-Fenster gibt:
Delphi-Quellcode:
h = packed record
i: integer;
s: smallint;
end;
var
m: h;
m.i := 0;
m.s := 1;
gibt
Code:
xor eax, eax
mov [m], eax
mov word ptr [m + $4], $0001
Es wird also direkt gesagt: i liegt direkt hinter der Adresse von m. s liegt dann 4 Byte weiter. Ein Record wird so eben auch im Speicher abgebildet, ohne zusätzliche Informationen oder ähnliches.
Aber wenn man sich die Prozeduren der TypInfo-
Unit anguckt, merkt man bald, dass die Zugriffe nicht über Pointer oder ähnliches, sondern über TObject laufen, was darauf schließen lässt, dass der Spaß nur mit Klassen wirklich auch Spaß bringt.
greetz
Mike