mit VB hab ich keine Ahnung, aber ich vermute mal, daß die da auch PACHED sind ... und beim C++, C# ... halt bei allen C-Varianten (soweit ich das verstanden hab), sind die so.
In Delphi ist hier standardmäßig ein 3-Byte-Zwischenraum, da der Integer an der nächsten 4-Byte-Grenze ausgerichtet wird.
Standard: {$A+}, was einem {$A4} entspricht
Das soll halt 'ne Optimierung sein, für einen schnelleren Zugriff ... auf einem 32-Bit-System
Delphi-Quellcode:
x = record
B: Byte;
// 3 Bytes
i: Integer;
end;
x = packed record
B: Byte;
i: Integer;
end;
// 01234567
// B...iiii // normal
// Biiii // packed
Du kannst ja da unten bestimmt erkennen, daß dort der Integer nicht an der selben Position liegt und es somit zu netten Problemchen kommen wird.
Ein Therapeut entspricht 1024 Gigapeut.