<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Verbund_%28Datentyp%29</id>
	<title>Verbund (Datentyp) - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Verbund_%28Datentyp%29"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Verbund_(Datentyp)&amp;action=history"/>
	<updated>2026-06-04T11:02:58Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Verbund_(Datentyp)&amp;diff=379895&amp;oldid=prev</id>
		<title>imported&gt;Invisigoth67: typo</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Verbund_(Datentyp)&amp;diff=379895&amp;oldid=prev"/>
		<updated>2025-10-01T11:34:22Z</updated>

		<summary type="html">&lt;p&gt;typo&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Ein &amp;#039;&amp;#039;&amp;#039;Verbund&amp;#039;&amp;#039;&amp;#039; ({{enS|&amp;#039;&amp;#039;object composition&amp;#039;&amp;#039;}}) ist ein [[Datentyp]], der aus einem oder mehreren Datentypen zusammengesetzt wurde. Die Komponenten eines Verbunds können wiederum Verbünde sein, wodurch auch komplexe [[Datenstruktur]]en definiert werden können.&lt;br /&gt;
&lt;br /&gt;
Die Komponenten/Elemente eines Verbunds werden normalerweise nacheinander im Speicher angeordnet (beispielsweise als &amp;lt;code&amp;gt;struct&amp;lt;/code&amp;gt; in der [[C (Programmiersprache)|Programmiersprache C]] bzw. als &amp;lt;code&amp;gt;record&amp;lt;/code&amp;gt; in [[Pascal (Programmiersprache)|Pascal]]). Eine Ausnahme stellen [[#Unions|Unions]] dar. Auch in anderen [[Programmiersprache]]n (siehe unten) wird dieser Datentyp zum Teil unterschiedlich bezeichnet.&lt;br /&gt;
&lt;br /&gt;
== Verwendung in verschiedenen Programmiersprachen ==&lt;br /&gt;
=== Strukturen in den Programmiersprachen C++ und C ===&lt;br /&gt;
In den Programmiersprachen [[C (Programmiersprache)|C]] und [[C++]] werden Verbünde (engl. auch &amp;#039;&amp;#039;composite types&amp;#039;&amp;#039;) als &amp;#039;&amp;#039;&amp;#039;Struktur&amp;#039;&amp;#039;&amp;#039; bezeichnet und mit dem Schlüsselwort &amp;lt;code&amp;gt;struct&amp;lt;/code&amp;gt; (kurz für engl. {{lang|en|&amp;#039;&amp;#039;structure&amp;#039;&amp;#039;}} ‚Struktur‘) deklariert. Die einzelnen Komponenten einer Struktur, die sog. {{lang|en|&amp;#039;&amp;#039;members&amp;#039;&amp;#039;}} ‚Mitglieder‘ dürfen dabei beliebige einfache Datentypen, Felder konstanter Größe oder ein [[Zeiger (Informatik)|Zeiger]] auf dieselbe Struktur sein.&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zur [[#Unions|{{lang|en|&amp;#039;&amp;#039;union&amp;#039;&amp;#039;}}]] überlappen sich die Speicherbereiche der einzelnen Strukturmitglieder nicht.&lt;br /&gt;
&lt;br /&gt;
==== Beispiel in C ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
struct Person&lt;br /&gt;
{&lt;br /&gt;
    int Personalnummer;&lt;br /&gt;
    int Alter;&lt;br /&gt;
    char Name[20];&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
struct Person *Person_anhand_Personalnummer(int);&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
    struct Person *person = Person_anhand_Personalnummer(12345);&lt;br /&gt;
&lt;br /&gt;
    printf(&amp;quot;Personalnummer: %i, Alter: %i\n&amp;quot;,&lt;br /&gt;
           person-&amp;gt;Personalnummer,&lt;br /&gt;
           person-&amp;gt;Alter);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hat man einen [[Zeiger (C)|Zeiger]] auf die Struktur, dann wird, wie gezeigt, auf einzelne Members am einfachsten mithilfe des Pfeils &amp;lt;code&amp;gt;-&amp;gt;&amp;lt;/code&amp;gt; zugegriffen, bspw. {{nowrap|&amp;lt;code&amp;gt;person-&amp;gt;Alter&amp;lt;/code&amp;gt;}}. Der Pfeil (engl. &amp;#039;&amp;#039;arrow&amp;#039;&amp;#039;) ist eine Kurzschreibweise für {{nowrap|&amp;lt;code&amp;gt;(*person).Alter&amp;lt;/code&amp;gt;}} mit dem Stern &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; als Dereferenzierungsoperator (engl. &amp;#039;&amp;#039;dereference operator&amp;#039;&amp;#039;) und dem Punkt &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; als Selektor (engl. &amp;#039;&amp;#039;object selector&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
==== Größe im Speicher ====&lt;br /&gt;
Eine Struktur kann größer sein als die Summe der einzelnen Datentypgrößen, da der [[Compiler]] die einzelnen Attribute im Speicher an bestimmten Adressen [[Speicherausrichtung|ausrichten]] kann. Die Anordnung der Struktur im Speicher ist nach der Übersetzung festgelegt und kann nicht mehr verändert werden.&lt;br /&gt;
&lt;br /&gt;
==== Unterscheidung zwischen C++- und C-Struktur ====&lt;br /&gt;
In C können Strukturen lediglich [[Variable (Programmierung)|Variablen]], [[Zeiger (Informatik)|Zeiger]], [[Feld (Datentyp)|Arrays]] und andere Strukturen enthalten, während Strukturen in C++ die zusätzliche Fähigkeit besitzen, [[Unterprogramm]]e – sogenannte [[Methode (Programmierung)|Methoden]] – zu beinhalten, zu denen auch [[Konstruktoren und Destruktoren#Konstruktoren|Konstruktoren]] und [[Konstruktoren und Destruktoren#Destruktoren|Destruktoren]] gehören.&amp;lt;ref&amp;gt;{{Internetquelle |autor=Peter Becker, Andreas Bruchmann, Dirk F. Raetzel |url=http://ip-klaeden.dyndns.org/webseiten/cppkurs/oop2/struct.html |titel=Unterschiede zum Datentyp &amp;#039;&amp;#039;struct&amp;#039;&amp;#039; |werk=Kapitel 12: Objektorientiertes Programmieren in C++. In: C++ - Eine Einführung |hrsg=Manfred Sommer, Philipps-Universität Marburg |datum=2001-06-05 |offline=ja |archiv-url=https://web.archive.org/web/20140110170426/http://ip-klaeden.dyndns.org/webseiten/cppkurs/oop2/struct.html |archiv-datum=2014-01-10 |archiv-bot= |zugriff=2014-01-10 |kommentar=}}&amp;lt;/ref&amp;gt; Dies lässt sich in C nur teilweise über Funktionszeiger realisieren, die auch Teil von Strukturen sein können.&lt;br /&gt;
&lt;br /&gt;
==== Unterscheidung zwischen C++-Struktur und C++-Klasse ====&lt;br /&gt;
In C++ dienen die Schlüsselwörter &amp;lt;code&amp;gt;public&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;private&amp;lt;/code&amp;gt; dazu, die Zugriffsrechte auf Attribute und Methoden in Strukturen und Klassen zu regeln. Der einzige Unterschied hier ist, dass ohne explizite Angabe die Attribute von Strukturen standardmäßig &amp;lt;code&amp;gt;public&amp;lt;/code&amp;gt; (Zugriff von außen erlaubt), die einer Klasse &amp;lt;code&amp;gt;private&amp;lt;/code&amp;gt; (Zugriff nur von innerhalb der Klasse oder durch [[Friend-Funktion]]en) sind.&amp;lt;ref&amp;gt;[http://www.cplusplus.com/doc/tutorial/classes/ &amp;#039;&amp;#039;Classes (I)&amp;#039;&amp;#039;] auf cplusplus.com&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Implementierung in Pascal ===&lt;br /&gt;
Ein Verbund (in Pascal mit &amp;lt;code&amp;gt;record&amp;lt;/code&amp;gt; bezeichnet) vom Datentyp &amp;lt;code&amp;gt;Person&amp;lt;/code&amp;gt; für die beiden Instanzen &amp;lt;code&amp;gt;Mustermann1&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;Mustermann2&amp;lt;/code&amp;gt; könnte in [[Component Pascal]] zum Beispiel folgendermaßen definiert und verwendet werden, und nur Instanzen desselben Datentyps sind in dieser Programmiersprache [[Zuweisungskompatibilität|zuweisungskompatibel]]:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
 MODULE Personen;&lt;br /&gt;
&lt;br /&gt;
 IMPORT Dates;&lt;br /&gt;
&lt;br /&gt;
 TYPE&lt;br /&gt;
    Person = RECORD&lt;br /&gt;
       Vorname, Name, Wohnort: ARRAY 256 OF CHAR;&lt;br /&gt;
       Geburtstag: Dates.Date;&lt;br /&gt;
    END;&lt;br /&gt;
&lt;br /&gt;
 VAR Mustermann1, Mustermann2: Person;&lt;br /&gt;
&lt;br /&gt;
 BEGIN&lt;br /&gt;
&lt;br /&gt;
    Mustermann1.Vorname          := &amp;quot;Hans&amp;quot;;&lt;br /&gt;
    Mustermann1.Name             := &amp;quot;Mustermann&amp;quot;;&lt;br /&gt;
    Mustermann1.Wohnort          := &amp;quot;Musterstadt&amp;quot;;&lt;br /&gt;
    Mustermann1.Geburtstag.day   :=    1;&lt;br /&gt;
    Mustermann1.Geburtstag.month :=    1;&lt;br /&gt;
    Mustermann1.Geburtstag.year  := 1900;&lt;br /&gt;
&lt;br /&gt;
    Mustermann2 := Mustermann1; (* Zwei Variablen vom selben Datentyp sind zuweisungskompatibel *)&lt;br /&gt;
&lt;br /&gt;
 END Personen.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Der importierte im [[Modul (Software)|Modul]] &amp;lt;code&amp;gt;Dates&amp;lt;/code&amp;gt; definierte Datentyp &amp;lt;code&amp;gt;Dates.Date&amp;lt;/code&amp;gt; ist wiederum ein Verbund mit den ganzzahligen Elementen &amp;lt;code&amp;gt;day&amp;lt;/code&amp;gt; (Tag), &amp;lt;code&amp;gt;month&amp;lt;/code&amp;gt; (Monat) und &amp;lt;code&amp;gt;year&amp;lt;/code&amp;gt; (Jahr).&lt;br /&gt;
&lt;br /&gt;
=== Implementierung in Swift ===&lt;br /&gt;
In [[Swift (Programmiersprache)|Swift]] werden Verbünde wie auch in C als &amp;lt;code&amp;gt;struct&amp;lt;/code&amp;gt; definiert. Dabei wird jedoch festgelegt, dass Instanzen des Verbunds stets auf dem Stack gespeichert werden. Wird eine Instanz A eines &amp;lt;code&amp;gt;struct&amp;lt;/code&amp;gt;s an eine andere Instanz B geschrieben, so erfolgt dies durch Kopieren des gesamten Speicherinhalts der Instanz A in den für die Instanz B reservierten Speicherbereich. Das Gleiche passiert beim Aufruf einer Funktion, die für einen Parameter ein struct als Typ vorsieht (siehe: [[Wertparameter]]).&lt;br /&gt;
&lt;br /&gt;
Demgegenüber werden [[Klasse (Objektorientierung)|Klassen]] in Swift (definiert über das Keyword &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;) immer auf dem [[Heap (Datenstruktur)|Heap]] abgelegt und innerhalb der Variable stets als [[Referenz (Programmierung)|Referenz]] auf diesen Speicherbereich auf dem Heap geführt. Wird eine Variable A als Instanz einer Klasse einer Variablen B als Instanz derselben Klasse zugewiesen, so wird lediglich die Referenz kopiert.&lt;br /&gt;
&lt;br /&gt;
=== Datengruppen in Cobol ===&lt;br /&gt;
In [[Cobol]] wird der Datentyp Verbund &amp;#039;&amp;#039;‚Datengruppe‘&amp;#039;&amp;#039; (auch &amp;#039;&amp;#039;Gruppen-Variable&amp;#039;&amp;#039; oder &amp;lt;code&amp;gt;group item&amp;lt;/code&amp;gt;) genannt. Eine Datengruppe wird mit ihrem Bezeichner deklariert und ist der Überbegriff bzw. die Zusammenfassung für die ihr [[Hierarchie|hierarchisch]] untergeordneten Datentypen – die selbst wieder Datengruppen sein können. Sie hat selbst keine Formatspezifikation (PIC-Klausel). Über die &amp;lt;code&amp;gt;OCCURS&amp;lt;/code&amp;gt;-Klausel kann auch eine Datengruppe als Tabelle (= [[Feld (Datentyp)|Array]]) deklariert werden, ggf. auch mehrstufig.&lt;br /&gt;
&lt;br /&gt;
In den die Datengruppe ansprechenden Befehlen wird die Gesamtheit der ihr untergeordneten Felder als ein (1) [[Datenfeld]] im PIC-X-Characterformat und in der Gesamtlänge aller Einzelfelder behandelt. Bei einem &amp;lt;code&amp;gt;MOVE&amp;lt;/code&amp;gt;-Befehl etwa findet also keine individuelle formatspezifische Verarbeitung der Einzelfelder statt, auch keine Formatkonvertierung.&lt;br /&gt;
&lt;br /&gt;
Über die &amp;lt;code&amp;gt;REDEFINES&amp;lt;/code&amp;gt;-Klausel kann eine Datengruppe eine andere Datengruppe &amp;#039;redefinieren&amp;#039;, wodurch beide Datengruppen denselben Speicherplatz benutzen. Angewendet wird dies beispielsweise für die Verarbeitung unterschiedlicher Eingabedaten, alternativ in der einen oder in der anderen Datenstruktur. Dies entspricht dem Konstrukt UNION in anderen Programmiersprachen.&lt;br /&gt;
&lt;br /&gt;
== Unions ==&lt;br /&gt;
Bei sog. {{lang|en|&amp;#039;&amp;#039;Unions&amp;#039;&amp;#039;}} beginnen alle Komponenten an der gleichen [[Speicheradresse]], d.&amp;amp;nbsp;h., ihre Speicherbereiche überlappen sich ganz oder zumindest teilweise. Eine Union belegt dabei mindestens so viel Speicher, wie ihre größte Komponente.&lt;br /&gt;
&lt;br /&gt;
Unions sind in verschiedenen Programmiersprachen entweder als tagged-Unions oder untagged-Unions implementiert.&lt;br /&gt;
&lt;br /&gt;
Eine tagged-Union ordnet jeder Komponente einen Tag zu. Beim Schreiben einer Komponente wird der Tag dieser Komponente in der Union-Variable gespeichert. Bei Lesezugriffen auf die Komponente einer Union wird der Tag der zu lesenden Komponente mit dem Tag der letzten geschriebenen Komponente verglichen. Unterscheiden sich die Tags, ist ein Typfehler festgestellt. Somit sind tagged-Unions [[Typsicherheit|typsicher]].&lt;br /&gt;
&lt;br /&gt;
Untagged-Unions verwenden keine Tags und sind deswegen typunsicher. D.&amp;amp;nbsp;h., es liegt in der Verantwortung des Programmierers, ob der letzte Schreibzugriff einer Union die gleiche Komponente verändert hat, die auch der darauf folgende Lesezugriff ausliest. Neben unbeabsichtigten Typfehlern bei der Verwendung von untagged-Unions existieren aber auch Anwendungsfälle für die [[Seiteneffekt]]e von untagged-Unions. Beispielsweise eine Union aus einer [[IEEE 754|IEEE-Gleitkommazahl]] und einer &amp;lt;code&amp;gt;struct&amp;lt;/code&amp;gt;, deren Komponenten den Zugriff auf Vorzeichen, Mantisse und Exponent erlauben.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel in C ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;math.h&amp;gt;&lt;br /&gt;
#include &amp;lt;inttypes.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
union Float64Components&lt;br /&gt;
{&lt;br /&gt;
    double       Float64;&lt;br /&gt;
    struct&lt;br /&gt;
    {&lt;br /&gt;
        uint64_t Mantissa52 : 52;&lt;br /&gt;
        uint64_t Exponent11 : 11;&lt;br /&gt;
        uint64_t Sign1      :  1;&lt;br /&gt;
    };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void main ()&lt;br /&gt;
{&lt;br /&gt;
    union Float64Components  pi;&lt;br /&gt;
    pi.Float64 = 3.1415926535897932384626433832795;&lt;br /&gt;
    printf (&amp;quot;%20.16f   %13I64X %03I64X %01I64X   (%20.16f)\n&amp;quot;,&lt;br /&gt;
            pi.Float64,&lt;br /&gt;
            pi.Mantissa52, pi.Exponent11, pi.Sign1,&lt;br /&gt;
            (pi.Sign1 ? -1 : +1) * (1.0 + pi.Mantissa52/4503599627370496.0) * pow (2, pi.Exponent11-1023));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output&lt;br /&gt;
  3.1415926535897931   921FB54442D18 400 0   (  3.1415926535897931)&lt;br /&gt;
&lt;br /&gt;
=== Beispiel in Haskell ===&lt;br /&gt;
Beispiel der Deklaration einer Union in [[Haskell (Programmiersprache)|Haskell]]:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ocaml&amp;quot;&amp;gt;&lt;br /&gt;
data Tree a = Br (Tree a) (Tree a) |&lt;br /&gt;
              Leaf a               |&lt;br /&gt;
              Nil&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Tree ist ein algebraischer Datentyp. Br, Leaf und Nil sind die Konstruktoren.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel in Pascal ===&lt;br /&gt;
Unions in Pascal heißen &amp;#039;&amp;#039;variante Teile&amp;#039;&amp;#039;.&amp;lt;ref&amp;gt;{{Internetquelle|url=https://docwiki.embarcadero.com/RADStudio/Athens/de/Strukturierte_Typen_(Delphi)#Variante_Teile_in_Record-Typen|titel=Strukturierte Typen (Delphi)|abruf=2024-06-02|werk=Delphi-Athens-Dokumentation}}&amp;lt;/ref&amp;gt; Das folgende Beispiel macht einen Chunknamen, wie er z.&amp;amp;nbsp;B. in [[Portable Network Graphics|PNG]] vorkommt, wahlweise als vorzeichenlose 32-Bit-Ganzzahl (Cardinal) oder als [[Zeichenkette]] ansprechbar:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
type&lt;br /&gt;
  TChunkname = record&lt;br /&gt;
    case Boolean of&lt;br /&gt;
      False: (Int: Cardinal);&lt;br /&gt;
      True: (Str: array[0..3] of AnsiChar);&lt;br /&gt;
  end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Anmerkungen:&lt;br /&gt;
* &amp;#039;&amp;#039;Boolean&amp;#039;&amp;#039; legt den Datentyp fest, aus dessen Wertebereich die case-Labels kommen müssen (hier &amp;#039;&amp;#039;False&amp;#039;&amp;#039; und &amp;#039;&amp;#039;True&amp;#039;&amp;#039;). Es kann jeder [[Datentyp#Ordinale Datentypen|ordinale Datentyp]] dafür verwendet werden. Der genaue Typ spielt in untagged-Unions wie oben keine Rolle, solange der Wertebereich groß genug für alle möglichen Fälle ist (hier beides jeweils 2). Der Datentyp Integer mit den case-Labels &amp;#039;&amp;#039;42&amp;#039;&amp;#039; und &amp;#039;&amp;#039;4711&amp;#039;&amp;#039; hätte beispielsweise dasselbe Ergebnis. Bei untagged-Unions wird kein Speicher für den case-Ausdruck verwendet, sodass eine Instanz des obigen Records 4 Bytes belegt.&lt;br /&gt;
* Records können auch einen gemeinsamen Teil haben und nur teilweise eine Union sein, indem die gemeinsamen Felder vor dem case-Konstrukt deklariert werden. Die Union (das case-Konstrukt) muss immer am Ende stehen, da das case-Konstrukt als Union – anders als sonst – kein eigenes Ende hat. Es können aber Records verschachtelt werden, um diese Einschränkung zu umgehen.&lt;br /&gt;
* In Pascal gibt es auch tagged-Unions. Sie entstehen, wenn dem case-Datentyp ein Bezeichner gegeben wird. Das Tag belegt nur in diesem Fall Speicher entsprechend seines Datentyps und kann über den Bezeichner angesprochen werden. Allerdings hat das Tag keinerlei Schutzfunktion, denn Schreib- und Lesezugriffe müssen nicht auf Felder dasselben Tags erfolgen. Das Tag verhält sich somit wie ein Feld im gemeinsamen Teil des Records.&lt;br /&gt;
&lt;br /&gt;
Bei Variablen, nicht jedoch Feldern von Datentypen, kann man in einigen Dialekten wie Delphi hinter dem Datentyp das Schlüsselwort &amp;#039;&amp;#039;absolute&amp;#039;&amp;#039; gefolgt vom Bezeichner einer anderen Variablen angeben, um deren Speicher mitzuverwenden.&amp;lt;ref&amp;gt;{{Internetquelle|url=https://docwiki.embarcadero.com/RADStudio/Athens/de/Variables_(Delphi)#Absolute_Adressen|titel=Variables (Delphi)|abruf=2024-06-02|werk=Delphi-Athens-Dokumentation}}&amp;lt;/ref&amp;gt; So entsteht eine Art Ad-Hoc-Union. Andere Dialekte erlauben auch die Angabe einer Speicheradresse.&lt;br /&gt;
&lt;br /&gt;
Alle Pascal-Datentypen belegen immer eine Größe in ganzen Bytes. Da auch die Felder in einer Union immer die volle Größe ihrer Datentypen einnehmen, ist das Zerlegen einer IEEE-754-Gleitkommazahl wie im C-Beispiel oben mit Unions alleine nicht möglich.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Assoziatives Array]]&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Datentyp]]&lt;br /&gt;
[[Kategorie:Programmiersprachelement]]&lt;br /&gt;
&lt;br /&gt;
[[en:Object composition]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Invisigoth67</name></author>
	</entry>
</feed>