AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi-Equivalent zur C-union

Ein Thema von oXmoX · begonnen am 21. Jun 2005 · letzter Beitrag vom 22. Jun 2005
 
NicoDE
(Gast)

n/a Beiträge
 
#10

Re: Delphi-Equivalent zur C-union

  Alt 22. Jun 2005, 10:53
Abschliesend noch weitere Hinweise zu varianten Stukturen.

Nemen wir folgende Deklarationen:
Delphi-Quellcode:
type
  TFoo = (fooInt, fooPtr);
Delphi-Quellcode:
type
  TBar = record
    Foo: TFoo;
    case Integer of
      0: (Int: Integer);
      1: (Ptr: Pointer);
  end;
Foo ist also eine Aufzählung welche angibt, ob in dem direkt folgenden varianten Teil in Integer oder ein Pointer steht.
Da TFoo ein Aufzählungstyp ist (und im semantischen Zusammenhang mit dem varianten Teil) steht, können wir TFoo auch als Aufzählungstyp für den varianten Teil benutzen:
Delphi-Quellcode:
type
  TBar = record
    Foo: TFoo;
    case TFoo of
      fooInt: (Int: Integer);
      fooPtr: (Ptr: Pointer);
  end;
Da Foo direkt vor dem varianten Teil steht, können wir noch einen Schritt weiter gehen:
Delphi-Quellcode:
type
  TBar = record
    case Foo: TFoo of
      fooInt: (Int: Integer);
      fooPtr: (Ptr: Pointer);
  end;
Foo wird also gleichzeitig deklariert und als Aufzählungstyp für den varianten Teil verwendet.

Diese Art der Deklaration dokumentiert die Bedeutung von Foo und des varianten Teils besser als die ursprüngliche Variante.
  Mit Zitat antworten Zitat
 


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:52 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