Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: static array in einem dynamic array freigeben?

  Alt 2. Jun 2006, 16:26
Zitat von sniper_w:
... aber den Unterschied ist, dass die Daten in Records (unpacked) auf 4 bytes (32 Bit eben) "aligned" sind und in packed record sind es nicht.
Deine Rec's sollten beide 2 Byte sein (da die Typen vorrangig an ihrr eigenen Göße ausgerichtet werden und wenn das nicht geht dann nach der Vorgabe ... ich hoff ich irre mich nicht gerade ), aber
Delphi-Quellcode:
type
rec = record
  B: Byte;
  I: Integer;
end;
// SizeOf(rec) = 8
Code:
01234567
B  IIII
und
Delphi-Quellcode:
type
rec = record
  B: Byte;
  b: Byte;
  I: Integer;
end;
// SizeOf(rec) = 8
Code:
01234567
Bb IIII

{$A4} ist ja als standard eingestellt, also 4 Byte ... man könnte aber auch z.B. {$A8} nehmen, dann sind es 64 Bit,
oder bei {$A1} / {$A-} ist es auch immer ein packed Record


[add]
PS:
selbst wenn er dabei an 4 Byte ausrichten würde, dann wären es 5 Byte
Code:
rec = record
  e: byte;
  d:Byte;
end;

01234
B  [color=silver]B
    ^ an der nächsten 4-Byte-Grenze ausgerichtet
      ist selbs 1 Byte groß, also 4+1=5[/color]
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat