Unions sind gut!
Im Internet verbreitet sich mehr und mehr das Gerücht, dass unions
vermieden werden sollen.
Diese Aussage ist absolut falsch. unions
sind eines der besten Sprachfeatures von C/C++ und sollten in jedem Programm verwendet werden.
Unions haben einige sehr eindeutige Vorteile:
Unions sparen Unmengen an Speicherplatz⌗
Ein großer Gegenspieler der union
in C ist das struct
. Beide verhalten sich sehr ähnlich, aber ein struct
braucht unverhältnismäßig mehr Speicher!
Schauen wir uns zwei kleine Codebeispiele an:
struct storage_element {
int position;
int amount;
int type;
}
Dieses struct
braucht den Speicherplatz für 3 integers. Eventuell sogar mehr, weil structs teilweise Padding einführen, das für den Entwickler nicht sichtbar ist!
Ein solches int
braucht heutzutage normalerweise 4 bytes. Das sind insgesamt 12 bytes!
Schauen wir uns jetzt im Vergleich dazu eine union
an:
union storage_element {
int position;
int amount;
int type;
}
Hier speichert der Compiler die Daten viel kompakter. Diese union
benötigt nicht 12, sondern nur 4 bytes an Speicher.
Jetzt ist das bei so kleinen structs
und unions
noch nicht sehr viel Speicher, aber bei größeren Anwendungen schlägt das extrem aus.
Unions helfen, den Code lesbar zu machen⌗
Unions können verwendet werden, um namespacing
in C zu erreichen.
C hat bekanntermaßen keine gute Methode um namespacing umzusetzen. Mit unions ist das aber ganz leicht möglich. Hier ein kleines Beispiel:
typedef union {
int best_variable;
int important_variable;
int huge_variable;
} important_variables;
typedef union {
int useless_variable;
int small_variable;
int forgettable_variable;
} less_important_variables;
Wenn dieser Code vorbereitet wurde, kann man Variablen sehr schön beschreiben mit important_variables.best_variable = 5;
. Das ist sehr sauber und zeigt sofort auf,
zu welchem Namespace die Variable best_variable
gehört.
Unions sind gut für Mitarbeiter von Firmen⌗
Unions, im deutschen Gewerkschaften, helfen Mitarbeitenden von Firmen ihre eigenen Rechte gegenüber der Firma durchzusetzen.
Firmen mit Gewerkschaften zahlen ihren Mitarbeitenden im Durchschnitt mehr Geld, kümmern sich mehr um die Gesundheit ihrer Mitarbeitenden und investieren mehr in Fortbildungen und Schulungen.
unions
im C Code zu verwenden ist eine einfache und wirksame Methode um das Thema Gewerkschaften aktiv zu halten und die eigene Solidarität zu dem Thema zu beweisen.