Unions werden analog zu struct
s definiert.
Allerdings werden alle Komponenten
der Struktur an derselben Speicherstelle gespeichert. Dies hat den
Vorteil Speicherplatz sparen zu können, wenn eine Komponente entweder die
eine oder andere Form hat. Allerdings muß der Programmierer selber darauf
achten welches Format gerade in Gebrauch ist, da auf alle Komponenten
zugegriffen werden kann. Ein Zugriff auf falsche Komponenten wird
i. allg. falsche Ergebnisse liefern.
union uniontyp { char datum[10]; // z.B. '1''3''.''1''0''.''1''9''9''9'' long date; // z.B. 19991013 } dat1, dat2;dat1.datum[0]='1'; dat1.datum[1]='3'; dat1.datum[2]='.'; dat1.datum[3]='0'; dat1.datum[4]='5'; dat1.datum[5]='.'; dat1.datum[0]='6'; dat1.datum[7]='9'; dat1.datum[8]='9'; dat1.datum[9]='8'; dat2.date = dat1.date; // erlaubt, liefert aber falsches Datum!! for (int i = 0; i < 10; i++) dat2.datum[i] = dat1.datum[i]; // so klappt es