|
|
Dnia 7/30/2008 7:09 PM, Użytkownik Mariusz napisał:
Witam.
Mam takie proste pytanko :-). W jaki sposób liczona jest wielkość rekordu w
Delphi? Gdzieś przeczytałem, że niespakowany rekord zajmuje tyle, ile
wielokrotność największego jego pola (czyli ilość jego pól razy wielkość
największego z nich). Faktycznie sprawdza się to, ale niezawsze. Jak to
dokładnie wygląda?
Dla 1 elementu działa tak jak zwykła zmienna:
TTest = record
a : Byte;
end;
sizeof(TTest) = 1
TTest2 = packed record
a : Byte;
end;
sizeof(TTest) = 1
Dla wielu elementów:
TTest = record
a : Byte;
b : Integer;
end;
sizeof(TTest) = 8
Tutaj niespakowany ma sizeof zaokrąglony do 4 bajtów w góre.
TTest2 = packed record
a : Byte;
b : Integer;
end;
sizeof(TTest) = 5
A tu normalnie.
--
Pozdrawiam
dziobu
|
|