AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Zwei Variablen mit dem gleichen Speicher
Thema durchsuchen
Ansicht
Themen-Optionen

Zwei Variablen mit dem gleichen Speicher

Ein Thema von TitanNano · begonnen am 7. Jan 2011 · letzter Beitrag vom 7. Jan 2011
Antwort Antwort
Seite 2 von 2     12   
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.415 Beiträge
 
Delphi XE5 Professional
 
#11

AW: Zwei Variablen mit dem gleichen Speicher

  Alt 7. Jan 2011, 13:22
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.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Zwei Variablen mit dem gleichen Speicher

  Alt 7. Jan 2011, 13:24
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.
Nennt man einen varianten Record ( was ich unter #1 ja schon erwähnt hatte)
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#13

AW: Zwei Variablen mit dem gleichen Speicher

  Alt 7. Jan 2011, 13:49
Alle Darstellungen müssen "gleich groß" sein.
Nein, müssen sie nicht.

Delphi-Quellcode:
program recordtest;

{$apptype console}

type
  TMyRecord = record
    case Boolean of
      True: (A: Integer; B: Integer);
      False: (C: Byte);
  end;
   
begin
  Writeln(SizeOf(TMyRecord));
end.
Kompiliert ohne Fehler und gibt "8" aus.

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...

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons

Geändert von JamesTKirk ( 7. Jan 2011 um 14:00 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#14

AW: Zwei Variablen mit dem gleichen Speicher

  Alt 7. Jan 2011, 17:03
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Zwei Variablen mit dem gleichen Speicher

  Alt 7. Jan 2011, 18:02
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#16

AW: Zwei Variablen mit dem gleichen Speicher

  Alt 7. Jan 2011, 20:45
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz