„Genau wie Strukturen sind Gewerkschaften auch benutzerdefinierte Datenatypen, aber im Gegensatz zu Strukturen teilen Gewerkschaftsmitglieder denselben Speicherort und haben keine unterschiedlichen Speicherorte. Wenn wir zwei Variablen in einer Struktur deklarieren und dann ihre Adresse überprüfen, werden wir feststellen, dass beide unterschiedliche Adressen haben, was bedeutet, dass Mitglieder einer Struktur unterschiedliche Speicherorte erhalten. Stattdessen deklarieren wir dieselben zwei Variablen in einer Gewerkschaft und überprüfen ihre Adressen. Es wird beobachtet, dass beide Adressen gleich sind, was beweist, dass beide Konstanten denselben Speicherort teilen. Im Falle der Struktur wird eine Ganzzahl vier Blöcke nehmen.
Eine Sache, die Sie beachten sollten, ist, dass die Mitglieder in einer Gewerkschaft den gleichen Ort des Gedächtnisses teilen, was bedeutet, dass Änderungen, die in einem Mitglied vorgenommen werden, auch in den anderen Mitgliedern der Gewerkschaft widerspiegelt werden. Die Größe der Gewerkschaft wird gemäß der Größe des größten Mitglieds einer Gewerkschaft genommen. Auf die Gewerkschaftsmitglieder kann durch die Verwendung des (->) Operators über Zeiger zugegriffen werden. Wenn wir Informationen über mehrere Objekte wie Bücher und Geschäfte speichern möchten, müssen wir für jede von ihnen zwei Strukturen erstellen. Es wird viel Gedächtnis verschwenden. Zu diesem Zweck werden Gewerkschaften verwendet. Gewerkschaften können Informationen in mehreren Objekten speichern.”
Syntax
Die Syntax, um eine Gewerkschaft zu deklarieren, lautet wie folgt:
Die Syntax für Gewerkschaften und Struktur ist fast gleich. Der Unterschied zwischen Union und Struktur besteht darin, dass wir die Keyword -Union anstelle von Struktur verwenden, um Gewerkschaften zu deklarieren. Im Abschnitt Variablen können wir sehen, dass wir mehrere Variablen verschiedener Datentypen deklariert haben. Dies entspricht Strukturen, aber in Strukturen können diese Variablen nur mit einem einzelnen Objekt wie Buch oder Schüler oder einer Klasse usw. in Verbindung gebracht werden. Aber in Gewerkschaften können wir Variablen für mehr als ein einzelnes Objekt deklarieren. Zum Beispiel können wir die Länge einer Tabelle und auch den Titel des Buches auf dem Tisch erklären.
Beispiel 1
In diesem Beispiel haben wir eine Gewerkschaft erstellt und ihnen den Namen "test_union" gegeben. Im Block der Variablen haben wir zwei Variablen als Mitglieder unserer Gewerkschaft deklariert. Ganzzahl "X" und Charakter "Y". Bei der Schließklammer gibt es eine Variable von Typ Union “test_union.„Wir können auch eine Variable des Gewerkschaftstyps wie in Strukturen erklären. Mit Hilfe von „Variable1“ können wir auf die Mitglieder unserer Gewerkschaft zugreifen. In der Main () -Funktion können wir durch die Verwendung des Punktbetreibers auf die in der Gewerkschaft deklarierten Variablen zugreifen. Hier weisen wir den Wert „75“ zu „x zu.Beachten Sie, dass wir unserer Variablen „Y“ keinen Wert zugewiesen haben.
#enthalten
Union test_union
int x;
Char y;
variable1;
int main ()
Variable1.x = 75;
printf ("x = %d \ n", variable1.X);
printf ("y = %c \ n", variable1.y);
Rückkehr 0;
Nachdem unser Code ausgeführt wurde, erhalten wir die Ausgabe, die in der folgenden Abbildung gezeigt ist. Wir haben „x“ und seinen Wert auf die gleiche Weise gedruckt; Wir haben „y“ und seinen Wert dagegen gedruckt. Das, was benachrichtigt werden soll, ist, dass wir Y keinen Wert zugewiesen haben. In unserer Ausgabe können wir sehen, dass der Compiler „X“ und einen Wert von „75“ dagegen gedruckt hat. Aber gegen "y" hat es "k gedruckt" gedruckt."Sie fragen sich vielleicht, warum wir dieses Kapital" K "als Produktion für" Y "erhalten haben."Wert" 75 "für" X "ist kein Problem. Aber „y“ ist ein Charakter, auf den der Compiler seinen Wert gedruckt hat, selbst wenn wir eine Zahl an „x“ übergeben haben.”
Dies liegt daran. Wir haben „variable1“ für unsere Gewerkschaft deklariert und den Wert mit dieser Variablen überschritten. Variable1 hat allen Mitgliedern der Gewerkschaft den Wert 75 zugewiesen. Int nahm diesen Wert als eine Zahl und druckte den gleichen Wert aus. Aber das Zeichen nahm diesen Wert als ASCII -Code und konvertierte diesen ASCII -Code in das Zeichen dagegen. ASCII -Code für das Kapital "k" ist "75", er ersetzte "75" durch "K".Dies ist der gesamte Prozess der Vereinigung, die denselben Speicherblock für die darin enthaltenen Variablen zuordnen.
Beispiel 2
In diesem Fall werden wir herausfinden, wie die Gewerkschaft das Gedächtnis nutzt. Zu diesem Zweck haben wir eine Gewerkschaft als Beispiel für ein Beispiel für einen Zweck erklärt. In Beispiel_Union haben wir vier Konstanten deklariert und jeweils mit unterschiedlichen Datenatypen. Wir haben Int var1, char var2, doppelte var3 und float var4 als Mitglieder unserer Gewerkschaft deklariert. In der Hauptmethode haben wir eine Anweisung mit der Funktionsgröße () darin gedruckt. Funktionsgröße () ist eine Standardfunktion in der C -Sprache, die die Größe eines Objekts in unserem Code erhält. Wir haben ihm den Namen unserer Gewerkschaft bestanden, weil wir die Größe unserer Gewerkschaft erhalten wollen.
#enthalten
Union Beispiel_union
int var1;
char var2;
doppelt var3;
float var4;
;
int main ()
printf ("%ld \ n", sizeof (Union example_union));
Rückkehr 0;
Dies ist die Ausgabe nach der Zusammenstellung unseres Code. Wir erhalten die Ausgabe von 8. In meinem System beträgt die Größe der Ganzzahl 4 Bytes, die Größe des Zeichen. In unserem Fall beträgt die Größe eines Doppels 8, was die größte aller Größen ist. Daher hat der Compiler unsere Gewerkschaft die Größe 8 zugeteilt. Jetzt können wir besser verstehen, dass die Größe der höchsten Variablen allen Datenatypen zugewiesen wird und die Summe ihrer Größen vom Compiler nicht wie bei der Struktur verwendet wird. Deshalb erhalten wir das Ergebnis 8 als unsere Ausgabe.
Abschluss
In diesem Leitfaden haben wir Gewerkschaften in der C -Sprache besprochen. Nur um das Konzept der Gewerkschaften zu verstehen, kann man sagen, dass die Gewerkschaften nahezu gleich sind wie Strukturen. Der Hauptunterschied ist jedoch die Speicherzuweisung. Es ist sehr effektiv beim Schreiben eines komplexen Code. Ein guter Programmierer versucht immer, den geringsten Speicher des Systems durch seinen Code zu belegen. Gewerkschaften helfen ihnen dazu. Wir haben unser Bestes geliefert, um Ihnen dabei zu helfen, die Gewerkschaften zu verstehen, indem wir Beispiele implementieren und erklären. Am Ende des Thema. Es wird dem Coder auch helfen, den Code für eine bessere Leistung zu optimieren.