Eine Union ist ein spezieller Datentyp, der in C verfügbar ist. Er ermöglicht das Speichern verschiedener Datentypen an demselben Speicherort. Sie können eine Union mit vielen Mitgliedern definieren, aber nur ein Mitglied kann zu jeder Zeit einen Wert enthalten. Unionen bieten eine effiziente Möglichkeit, den gleichen Speicherort für mehrere Zwecke zu verwenden.
Das Union-Tag ist optional und jede Elementdefinition ist eine normale Variablendefinition, z. B. int i; oder float f; oder irgendeine andere gültige Variablendefinition. Am Ende der Union-Definition können Sie vor dem letzten Semikolon eine oder mehrere Union-Variablen angeben, dies ist jedoch optional. Hier ist die Art und Weisen Sie einen Union-Typen definieren würden namens Daten mit drei Mitgliedern i, f und str -
union Data {
int i;
float f;
char str[20];
} data;
nun eine Variable vom Datentyp eine ganze Zahl speichern kann, eine Fließkommazahl oder eine Zeichenfolge von Charakteren. Es bedeutet, dass eine einzelne Variable, d. H. Dieselbe Speicherstelle, verwendet werden kann, um mehrere Arten von Daten zu speichern. Sie können beliebige integrierte oder benutzerdefinierte Datentypen innerhalb einer Union basierend auf Ihren Anforderungen verwenden.
Ich denke, Sie sollten darüber nachdenken, wie Gewerkschaften noch einmal arbeiten. – skypjack
warum? Wenn es einen Fehler gibt, bitte sagen Sie mir – Fullatron
Ihre Erwartung ist falsch. Sie können * all * die Mitglieder einer Gewerkschaft nicht festlegen und erwarten, dass sie ihre Werte behalten. Verwenden Sie eine Struktur dafür. Mitglieder einer Gewerkschaft sind (sagen wir mal) exklusiv, Sie benutzen entweder die erste ** oder ** die zweite und so weiter. Es wäre ein UB, aber für die Tatsache, dass es Ihnen ein vorhersagbares Ergebnis gibt, wenn Sie alle "int" sind. Wie auch immer, wie gesagt, deine Erwartung ist falsch, nicht das Ergebnis. – skypjack