![]() |
Größe eines Records
Hallo zusammen,
ich verstehe einfach nicht warum der Record im Anhang unter Delphi 1 eine Größe von 133 Byte hat und unter Delphi 2006 nur noch eine Größe von 132 Byte aufweist. Das mit den 133 kann ich ja nachvollziehen so sollte es eigentlich auch in Delphi 2006 sein. Warum ist er dort jedoch nur 132 Byte groß?
Delphi-Quellcode:
Summe = 133 Byte
const
lPosNr = 12; type TAbzTyp = (abzNetto, abzBrutto); TAbzArt = (abzArtAbzug, abzArtZuschlag); TNrStr = Array[0..lPosNr] of Char; TAbzuegeBez = Array[0..100] of Char; PAbzuegeRec = ^TAbzuegeRec; TAbzuegeRec = Record rFree : LongInt; //4 rAuftrNr : TNrStr; //13 rNr : ShortInt; //2 rBez : TAbzuegeBez; //101 rIsRelativ : Boolean; //1 rValue : Double; //8 rNeueSumme : Boolean; //1 rAbzTyp : TAbzTyp; //1 rAbzArt : TAbzArt; //1 rVonGesSumme : Boolean; //1 End; SizeOf(TAbzuegeRec) = 132 Byte ????? Gruß Markus |
Re: Größe eines Records
Könnte an der Byte-Ausrichtung liegen.
Mein einziger Vorschlag wäre, es mal mit einem packed record zu probieren, falls Delphi 1 das schon unterstützt.
Delphi-Quellcode:
TAbzuegeRec = packed record
rFree : LongInt; //4 ... |
Re: Größe eines Records
Also kleiner dürfte es nicht werden, denn wenn etwas ausgerichtet wird, dann werden "Füllbytes" eingefügt, es kann demnach also nur größer werden !
Bist du dir mit den Größen der enthaltenen Typen denn sicher? |
Re: Größe eines Records
Wenn man unter Delphi 1 die Optionen {A-}, {A+} oder packed aktiviert ist die Größe des Records weiterhin 133 Byte. Das Problem liegt ja auch nicht bei Delphi 1 sondern bei Delphi 2006, dort sollte doch der Record ebenfalls eine Größe von 133 Byte aufweisen. Warum ist dieser jedoch nur 132 Byte groß?
Das mit den Größen muss alles Stimmen. Kann man ja auch nachrechnen. Gruß Markus |
Re: Größe eines Records
Ist ShortInt nicht nur 1 Byte groß?!
|
Re: Größe eines Records
Oh nein ein dummer Fehler es sollte ja auch kein ShortInt sondern ein SmallInt sein und das schon am frühen Morgen.
Trotzdem Danke für euere Hilfe. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz