![]() |
Instancesize
ich habe folgende klasse
Delphi-Quellcode:
Unser professor hat uns erklärt dass jedes angelegte Objekt 4 byte brauch; es kommen dann noch
tx = class(TObject)
fa : byte; end; die variabeln hinzu. folglich müßte dieses objekt 5 byte brauchen. Nun wenn ich tx.instancesize schreibe steht da acht byte und ich verstehe nicht warum?!? |
Re: Instancesize
Hängt mit Ausrichtung und Optimierung zu sammen auch ein Record mit einem Byte hat insgesamt 4. Es ist für den Prozessor performanter wenn die Variablen in 4 Bytes (32-Bit) ausgerichtet sind.
|
Re: Instancesize
Der Compiler reserviert eigentlich nur 5 Byte für deine Klassenstruktur. Da auch der direkt anschließende Speicher benötigt wird, aber der Compiler diesen aber nur an einer Doppelwortgrenze belegen möchte (Alignment), wirst du als InstanceSize nur Vielfache von 4 finden. Näheres dazu findest du unter "Delphi Sprachreferenz :: Der Speichermanager" in der Online Hilfe (D7).
Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:56 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