Union in c

Union in c

Wie Structure Union ist auch ein wichtiges Konzept in C. Es gibt zwei Typen, die in C Datentyp existieren. Sie sind primitive Datentypen und nicht primitive oder benutzerdefinierte Datentypen. Union ist ein Beispiel für einen nicht primitiven Datentyp.

Was sind die Gewerkschaft und ihre Hauptmerkmale

Union ist eine Möglichkeit, Variablen zu gruppieren. Manchmal müssen wir einige Informationen in einer Gruppe speichern.

Nehmen wir an, wir müssen die Informationen einiger Schüler aufbewahren. Informationen bedeutet ihren Namen, Ihre Adresse, Mobiltelefone, Geschlecht, Markierungen, Aggregate usw. Eine Situation tritt auf, wenn nur ein Datenmitglied dieser Gruppe von Variablen gleichzeitig einen Wert enthalten muss. In dieser Situation wird das Programm sehr komplex und erhöht die Ausführungsgeschwindigkeit des Programms an die mehrfachen Variablen für jeden Schüler, wenn wir diese Daten speichern.

Um dieses Problem zu reduzieren, stellen wir Union vor. Mit Hilfe der Gewerkschaft können wir diese Variablen jedes Schülers in einer einzigen Variablen gruppieren und jeweils eine dieser Variablengruppen enthalten.

Union ist eine Sammlung unterschiedlicher Elemente. Unähnliche bedeutet, dass wir verschiedene Datentypwerte wie int, char, float, String usw. speichern können.

Wenn wir die Informationen einer Schüler speichern, müssen wir seinen Namen, Marken, Mobiltelefone usw. speichern, usw. Name ist eine Zeichenfolge, Mark ist ein Float, Mobile No ist ein Ganzzahl -Array. Es ist also eine Gruppe unterschiedlicher Elemente.

Definieren von Union bedeutet, einen neuen Datentyp zu erstellen, Und wir wissen, dass das Erstellen eines neuen Datentyps bedeutet, dass wir hier nicht primitive Datentypen verwenden.

Union ist ein benutzerdefinierter Datentyp wie Struktur. Aber Gewerkschaftsmitglieder teilen den gleichen Speicherort.

Beispiel

Union Beispiel


int x;
Char y;
e;

Wenn wir die Adresse von x und y drucken., Sie können den gleichen Adressort enthalten

In der Gewerkschaft können verschiedene Arten von Datenmitgliedern vorhanden sein. Die Größe der Union wird jedoch nach dem größten Datenmitglied berechnet, das in der Gewerkschaft vorhanden ist.

Programmierbeispiel 1

#enthalten
Gewerkschaftsartikel // eine andere Gewerkschaft definieren;

int x;
float y;
Char Z;
;
int main ()

printf („ %d“, sizeof (Gewerkschaftsartikel));
Rückkehr 0;

Ausgang

Erläuterung

Hier definieren wir eine Gewerkschaft namens Item. Datenmitglieder dieser Gewerkschaft sind X, Y und Z, die Angaben zum Float- und Charaktertyp sind. Jetzt in der Funktion main () verwenden wir den Größenoperator, um die Größe des Datentypelements zu bestimmen. Es erhält Output 4, da der Float -Datentyp der höchste Datentyp ist, der in der Gewerkschaft als Datenmitglied vorhanden ist.

Wie man eine Gewerkschaft definiert

Union Beispiel // Definieren einer Gewerkschaft;

Datentyp var1;
Datentyp var2;
-------------------- ;
Datentyp Varn;
;
Gewerkschaftsartikel // eine andere Gewerkschaft definieren;

int x;
float y;
Char Z;
;

Speicherverbrauch

Für die Definition von Union wird kein Gedächtnis verzehrt. Da der Speicher zum Zeitpunkt der Erklärung einer Variablen, jedoch nicht bei der Definition des Datentyps, verbraucht wird.

Als Definieren von Gewerkschaft bedeutet das Erstellen eines neuen Datentyps, der Speicher wird nicht konsumiert. Der Gedächtnis wird zum Zeitpunkt der Erklärung einer bestimmten Art von Variable konsumiert.

Struktur vs. Union

Struktur Item Union Artikel

Struktur Item Union Artikel

int x; int x;
float y; float y;
Char Z; Char Z;

Struktur Item I1; Gewerkschaftspunkt I1;

Erläuterung

In der Struktur können wir den Speicherort für eine Gruppe von Variablen erstellen. Das gesamte Datenelement der Struktur enthält Speicher gleichzeitig.

Wo in einer Vereinigung können wir den Speicherblock des höchsten Speichers erstellen, der als Mitgliedsvariable besteht.

In der Struktur erstellen wir eine Struktur, die (2 + 4 + 1) = 7 Bytes erfordert. Als Ganzzahl, Float nimmt char 2, 4 und 1-Byte-Speicher ein.

Wo in der Gewerkschaft erstellen wir eine Gewerkschaft, die 4 Bytes Speicherblock als Float -Datentypvariable verwendet.

Vorteile der Union

Mit Hilfe der Gewerkschaft können wir einmal auf Daten zugreifen. Wenn wir auf eine andere Mitgliedsvariable zugreifen möchten, bedeutet dies, dass die Variable oder der Wert der Variablen den vorherigen Wert einer Variablen überschreiben. Es bedeutet, dass es den Wert der neuesten Variablen nimmt, die in der Gewerkschaft existiert.

Programmierbeispiel 2

#enthalten
Gewerkschaftsartikel // eine andere Gewerkschaft definieren;

int x;
float y;
Char Z;
;
int main ()

Gewerkschaftspunkt I1;
I1. x = 5;
printf ("\ n x = %d", i1. X ) ;
I1. y = 3. 5;
printf ("\ n y = %f", i1. y);
I1. z = 'a';
printf ("\ n z = %c \ n", i1. z);
Rückkehr 0;

Ausgang

Erläuterung

Aus der Ausgabe können wir die falsche Wahrnehmung haben, dass Union den Speicherplatz verbraucht (2 + 4 + 1) = 7 Bytes. Aber es ist eine falsche Wahrnehmung. Denn wenn wir eine Ganzzahlvariable verwenden, können wir dies verwenden. Dann verwenden wir die Float -Variable; Diese Variable überschreibt den Wert von x.

Nachdem wir den Wert von y verwendet haben, wird der Wert von X erneut drucken. Es kann den Speicher einer Variablen zu einem Zeitpunkt der höchsten Datentypvariablen konsumieren.

Programmierbeispiel 3

#enthalten
Union Beispiel // Definieren einer anderen Vereinigung;

int x;
Char Z;
; u;
int main ()

u. x = 65;
printf ("x = %d \ n", u. X) ;
printf ("z = %c \ n", u. z);
Rückkehr 0;

Ausgang

Erläuterung

Hier definieren wir eine Gewerkschaft namens Beispiel. In der Gewerkschaft gibt es zwei Datenmitglieder, die existieren. Einer ist eine ganzzahlige Variable x; Ein anderer ist die Variable Z Charakter Typ Z. In der Funktion main () wird x 65 zugewiesen.

Wenn wir nun den Wert von x drucken, zeigt er einen Wert von 65 an. Überraschenderweise, wenn wir den Wert von y drucken, zeigt es Ergebnis a. Da die Datenmitglieder der Union denselben Adressort unseres Speichers teilen und der binäre Wert von 65 A ist, zeigt es das Ergebnis A als Zeichenwert.

Abschluss

Wie Structure Union ist auch ein wichtiges Konzept in C. Über die Gewerkschaft erfahren wir, dass viele Datenmitglieder oder Variablen denselben Adressort in unserem Speicher teilen können. Es ist also ein einzigartiges Merkmal der Union.