|
Hauptseite - Welches System? - Hardware - Software - Emulatoren - |
Internet MausNet Programmieren Verweise Über |
Wenn z.B. in Abhängigkeit einer anderen Information alternativ unterschiedliche Datentypen gespeichert werden sollen, bietet sich eine union an. Nach der Beschreibung von struct und enum können wir die Benutzung schon erraten. Auch hier lassen sich mehr als 2 Komponenten zusammenfassen.
int main() { union test1 { char x; int y; }; union { int Wert; char Feld[2]; } x; union test1 y; x.Wert = 1; }
Auf die unterschiedlichen Komponenten einer union wird genau wie bei einem struct über den Namen der Komponente zugegriffen. Allerdings belegen sämtliche Komponenten ein und denselben Speicherplatz. Der für die union angelegte Speicherplatz ist der Platz der größten Komponente, unabhängig davon, welche Komponente benutzt wird. Damit läßt sich nur eine Komponete zur gleichen Zeit sinnvoll nutzen. Alternativ läßt sich auch eine union benutzen, um auf den gleichen Speicher auf verschiedene Weise zuzugreifen. Da der Name eines Cookies in der Regel gemäß einer Empfehlung von Atari ein Kürzel darstellt, wäre es wünschenswert, auch auf die einzelnen Zeichen des Namens zuzugreifen. Damit läßt sich der struct für den cookie wie folgt erweitern:
... struct cookie { union { unsigned long name_long; char name_array[4]; } name; unsigned long value; };
English version not yet available. |