I do not want to confuse you too much, but there is a problem of alignment; If you define such an entry, it will depend on the compiler, what its layout will look like:
type Test = record A: Byte; B: Pointer; end;
If compiled with {$ A1}, SizeOf(Test) will end as 5, while compiling with {$ A4} will give you 8 (at least on the current 32-bit Delphi, which is there!) There are all kinds of small tricks here, so I would advise now to ignore this and read an article like this when the need arises; -)
source share