Registriert seit: 29. Mai 2002
37.621 Beiträge
Delphi 2006 Professional
|
Re: records im Speicher...
29. Okt 2007, 15:24
Warum beantwortet ihr seine Frage nicht?
Der Delphi Compiler richtet die Felder des Records an Byte-Grenzen aus. Dies optimiert den Zugriff auf die Speicherbereiche, da die CPU sowieso immer 4 Byte (bei einer 32-Bit CPU) aus dem Speicher lädt. Sind die Felder an Byte-Grenzen ausgerichtet, ist es für die CPU "einfacher" die wirklich benötigten Bytes zu extrahieren. Der zusätzlich benötigte Speicherplatz ist heute vernachlässigbar. Die Ausrichtungsgrenze kann in den Compiler Optionen eingestellt werden.
Will sicherstellen, dass kompatible Records auch mit einer anderen Ausrichtungsgrenze erstellt werden, kann man mit dem Schlüsselwort packed die Ausrichtung der Felder an Byte-Grenzen verhindern. Dabei kommt dann das raus, was du eigentlich erwartet hattest.
Michael Ein Teil meines Codes würde euch verunsichern.
|