Ενώσεις (Unions)
Στη C, η ένωση (union) είναι ένας τύπος δεδομένων ίδιος με την δομή (struct). Η μόνη διαφορά είναι ότι χρησιμοποιεί την ίδια μνήμη για να αποθηκεύει τις τιμές των μεταβλητών της.
Στο παρακάτω παράδειγμα παρουσιάζεται ο τρόπος λειτουργίας μιας ένωσης.
Παράδειγμα
#include <stdio.h> /* Δήλωση union με το όνομα Data */ union Data { int i; int f; }; int main( ) { /* Δήλωση μεταβλητής τύπου union Data με το όνομα data */ union Data data; /* καταχώρηση τιμής στην μεταβλητή-μέλος i και εκτύπωση */ data.i = 100; printf( "data.i : %d\n", data.i); /* καταχώρηση τιμής στην μεταβλητή-μέλος f και εκτύπωση εδώ η f "γράφει" επάνω στη μνήμη της i */ data.f = 200; printf( "data.f : %d\n", data.f); /* Αν ξαναεκτυπώσουμε την i θα δούμε ότι έχει αντικατασταθεί από την τιμή της f */ printf( "data.i : %d\n", data.i); return 0; }
data.i : 100
data.f : 200
data.i : 200
data.f : 200
data.i : 200