Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#16

Re: Record: Delphi only?

  Alt 23. Jun 2006, 11:33
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.
$2B or not $2B
  Mit Zitat antworten Zitat