![]() |
AW: Zwei Variablen mit dem gleichen Speicher
Alternativ kann man in einer Variable mehrere "Views" abbilden.
Dazu baut man sich einen Record. In der Definition können per case-Befehl verschiedene Darstellung abgebildet werden. Alle Darstellungen müssen "gleich groß" sein. |
AW: Zwei Variablen mit dem gleichen Speicher
Zitat:
|
AW: Zwei Variablen mit dem gleichen Speicher
Zitat:
Delphi-Quellcode:
Kompiliert ohne Fehler und gibt "8" aus.
program recordtest;
{$apptype console} type TMyRecord = record case Boolean of True: (A: Integer; B: Integer); False: (C: Byte); end; begin Writeln(SizeOf(TMyRecord)); end. Edit: Nur falls jemand das falsche denkt: kompiliert mit Delphi 2007 (kompiliert mit FPC auch, dieser gibt aber 4 aus O.o ) Edit2: Ok... FPC hatte mich derwischt... man sollte natürlich in dem Modus kompilieren, in dem SizeOf(Integer)=4 ist... :wall: Gruß, Sven |
AW: Zwei Variablen mit dem gleichen Speicher
Da hab ich jetzt ein Problem, irgendwo hab ich gelesen, daß solche Konstruktionen für jede "case-Zweig" einen eigenen Speicherbereich belegen. Es soll sich also nicht um unterschiedliche "Views" des gleichen Speicherbereichs handeln ????
Oder hatte packed diese Auswirkung? Gruß K-H |
AW: Zwei Variablen mit dem gleichen Speicher
Wo willst du das gelesen haben?
Ab dem Case fängt jeder Zweig an der selben Stelle (Speicheradresse/Offset) an. Speicher wird soviel reserviert, wie der größte Zweig belegt. PACKED sagt nur, daß keine Speicherausrichtung verwendet werden soll. |
AW: Zwei Variablen mit dem gleichen Speicher
Keine Ahnung, war irgendein Buch oder Artikel über Records, angeblich sollten die Daten wie benötigt kopiert werden.
Gut, daß das Blödsinn ist! Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:13 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