Atari Logo
Atari Computer

Hauptseite -
Welches System? -
Hardware -
Software -
Emulatoren -
Internet
MausNet
Programmieren
Verweise
Über

C

Home weitere Möglichkeiten für Variablendeklarationen enum typedef

8.4 union

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;
};

Home weitere Möglichkeiten für Variablendeklarationen enum typedef


Best viewed with any browser English version not yet available.

Änderungen und Irrtümer vorbehalten. Letzte Änderung:
14 September 2001.
Home - Mail an den Webmaster - Impressum