Ένωση
Μια ένωση σας επιτρέπει έναν τρόπο να εξετάσει τα ίδια στοιχεία με τους διαφορετικούς τύπους, ή να χρησιμοποιήσει τα ίδια στοιχεία με τα διαφορετικά ονόματα. Οι ενώσεις είναι παρόμοιες με τις δομές. Μια ένωση δηλώνεται και χρησιμοποιείται με τους ίδιους τρόπους ότι μια δομή είναι.
Μια ένωση διαφέρει από μια δομή σε εκείνο το μόνο ένα από τα μέλη της μπορεί να χρησιμοποιηθεί σε έναν χρόνο. Ο λόγος για αυτό είναι απλός. Όλα τα μέλη μιας ένωσης καταλαμβάνουν τον ίδιο τομέα της μνήμης. Τους τοποθετούνται ο ένας πάνω από τον άλλον.
Οι Ενώσεις καθορίζονται και δηλώνονται στην ίδια μόδα με τις δομές. Η μόνη διαφορά στις δηλώσεις είναι ότι η ένωση λέξης κλειδιού χρησιμοποιείται αντί του struct. Για να καθορίσει μια απλή ένωση μιας μεταβλητής προσροφητικών ανθράκων και μιας μεταβλητής ακέραιων αριθμών, θα γράφατε τα εξής:
union shared {
char c;
int i;
};
Αυτή η ένωση, κοινή, μπορεί να χρησιμοποιηθεί για να δημιουργήσει τις περιπτώσεις μιας ένωσης που μπορεί να κρατήσει είτε μια αξία γ χαρακτήρα είτε μια αξία ι ακέραιων αριθμών. Αυτό είναι Η όρος. Αντίθετα από μια δομή που θα κρατούσε και τις δύο τιμές, η ένωση μπορεί να κρατήσει μόνο μια αξία τη φορά.
Μια ένωση μπορεί να μονογραφθεί στη δήλωσή της. Επειδή μόνο ένα μέλος μπορεί να χρησιμοποιηθεί σε έναν χρόνο και μόνο κάποιος μπορεί να μονογραφθεί. Για να αποφύγει τη σύγχυση, μόνο το πρώτο μέλος της ένωσης μπορεί να μονογραφθεί. Ο ακόλουθος κώδικας παρουσιάζει μια περίπτωση του δήλωσης της κοινής ένωσης και που μονογράφεται:
union shared generic_variable = {`@'};
Η ειδοποίηση ότι η generic_variable ένωση μονογράφθηκε ακριβώς ως πρώτο μέλος μιας δομής θα μονογραφόταν.
Τα μεμονωμένα μέλη ένωσης μπορούν να χρησιμοποιηθούν με τον ίδιο τρόπο που κτίζουν τα μέλη μπορούν να χρησιμοποιηθούν με τη χρησιμοποίηση του χειριστή μελών (.). Εντούτοις, υπάρχει μια σημαντική διαφορά στην πρόσβαση των μελών ένωσης.
Μόνο ένα μέλος ένωσης πρέπει να προσεγγιστεί σε έναν χρόνο. Επειδή μια ένωση αποθηκεύει τα μέλη της η μια πάνω από την άλλη, είναι σημαντικό να προσεγγιστεί μόνο ένα μέλος τη φορά.
|