Unterschied zwischen Struktur und Union

Beide Struktur und Union sind benutzerdefinierte Datentypen in C Language und sind konzeptionell identisch, jedoch unterscheiden sie sich in einigen Punkten noch immer in der Art, wie Speicher ihren Mitgliedern zugewiesen wird. Sie werden ähnlich erklärt, aber sie funktionieren anders. Sie ermöglichen dem Benutzer, verschiedene Datentypen unter einem einzigen Namen zu kombinieren. Während für jedes Mitglied beim Deklarieren von Strukturvariablen ein separater Speicherort verwendet wird, teilen sich die verschiedenen Mitglieder einer Union-Variablen den gleichen Speicherort. Lassen Sie uns den Unterschied zwischen Struktur und Vereinigung als Detail betrachten.

Was ist Struktur?

Eine Struktur ist nur ein weiterer benutzerdefinierter Datentyp in C, der es dem Benutzer ermöglicht, Datentypen verschiedener Arten in einem einzelnen Typ in einem Speicherblock zu kombinieren. Eine Struktur kann sowohl einfache als auch komplexe Datentypen enthalten, die miteinander in Beziehung stehen und ansonsten keinen Sinn ergeben. Jedes Mitglied innerhalb einer Struktur erhält seinen eigenen Speicherort, so dass jederzeit darauf zugegriffen werden kann.

Eine Struktur wird verwendet, wenn viele Daten wie ein Verzeichnis gruppiert werden müssen, das Informationen über viele Mitglieder in einem Buch oder Adressbuch enthält, in dem alle Informationen zu einem einzelnen Kontakt gespeichert sind - Name, Adresse, Kontaktnummer und so weiter. Die Adresse jedes Mitglieds wird in aufsteigender Reihenfolge sein, was bedeutet, dass der Speicher jedes Mitglieds bei verschiedenen Versatzwerten beginnt. Wenn Sie den Wert eines Mitglieds ändern, wirkt sich dies nicht auf andere Mitglieder aus.

Ein Schlüsselwort 'struct' wird verwendet, um eine Struktur verschiedener Datentypen unter einem einzigen Namen zu definieren. Wenn Sie beispielsweise eine Mitarbeiterdatenbank erstellen möchten, müssen Sie den Namen, das Alter, das Telefon und die Gehaltsangaben des Mitarbeiters in einer einzigen Entität speichern. Dies geschieht durch das Schlüsselwort 'struct', das dem Compiler mitteilt, dass eine Struktur deklariert wurde.

struct Mitarbeiter {

String-Name;

String Alter;

Schnur Telefon;

String-Gehalt;

} emp1, emp2;

Hier ist 'Mitarbeiter' der Name der Struktur und zwei Variablen 'emp1' und 'emp2' werden vom Typ 'employee' erstellt. Auf die schließenden Klammern muss ein Semikolon (;) folgen.

Auf Mitglieder einer Struktur kann mit zwei Arten von Operatoren zugegriffen werden:

  1. Mitgliedsoperator
  2. Strukturzeigeroperator

Was ist Union?

Es ist ein spezieller Datentyp, der in C verwendet wird und es dem Benutzer ermöglicht, Datentypen unterschiedlicher Art an demselben Speicherort zu speichern. Eine Union ist einer Struktur sehr ähnlich und kann definiert werden, indem das Schlüsselwort 'struct' durch das Schlüsselwort 'union' ersetzt wird. Die Mitglieder überlagern sich gegenseitig in einer Einheit und sie ist groß genug, um allen ihren Mitgliedern zu entsprechen.

Wenn eine Variable mit union verknüpft ist, ordnet der Compiler den Arbeitsspeicher unter Berücksichtigung der Größe des größten Arbeitsspeichers zu, sodass die Größe einer Union der Größe des größten Datenelements entspricht.Eine Union kann mit vielen Mitgliedern definiert werden, aber nur ein Mitglied enthält den Wert zu einem bestimmten Zeitpunkt.

Die Adresse ist für alle Mitglieder einer Vereinigung gleich, was bedeutet, dass jedes Mitglied mit dem gleichen Offset-Wert beginnt. Wenn Sie den Wert eines Mitglieds ändern, wirkt sich dies auf die Werte anderer Mitglieder aus. Eine Union kann verwendet werden, wenn Sie etwas speichern möchten, das zu mehreren Datentypen gehört.

Gewerkschaftsmitarbeiter {

Char Name [32];

int Alter;

Floatgehalt;

};

Hier definiert das Schlüsselwort 'union' die Union, die der Deklaration der Struktur sehr ähnlich ist. Die Variable kann entweder einen String-Wert speichern, der "Name des Angestellten" ist, einen ganzzahligen Wert, der das "Alter des Angestellten" ist, oder einen Float, der das "Gehalt des Angestellten" darstellt.

Unterschied zwischen Struktur und Union

1. Schlüsselwort

Das Schlüsselwort 'struct' wird zum Definieren einer Struktur verwendet, während das Schlüsselwort 'union' zum Definieren einer Union verwendet wird.

2. Speicherzuweisung

Für die Mitglieder einer Struktur wird ein separater Speicherplatz zugewiesen, und Mitglieder haben unterschiedliche Adressen, die keinen gemeinsamen Speicher haben. Eine Union teilt andererseits den gleichen Speicherplatz für alle ihre Mitglieder, so dass der geteilte Speicherplatz zugeordnet wird.

3. Mitgliederzugriff

Eine Gewerkschaft speichert für alle ihre Mitglieder jeweils einen einzelnen Wert, so dass sie nur für jeweils ein Mitglied zugänglich sind. Während mehrere Werte in einer Struktur gespeichert werden können, kann jeder Elementwert jederzeit abgerufen und abgerufen werden.

4. Size

Die Größe einer Struktur entspricht der Summe der Größe aller Elemente oder mehr, während die Größe einer Union der Größe des größten Elements entspricht.

5. Initialisierung

In einer Struktur können mehrere Elemente gleichzeitig initialisiert werden, während in einer Union nur das erste Element mit dem Wert seines Typs initialisiert werden kann.

5. Wert

Eine Struktur kann verschiedene Werte aller Elemente speichern, und die Änderung des Werts eines Elements wirkt sich nicht auf die Werte anderer Elemente aus. Während eine Gewerkschaft denselben Wert für alle ihre Mitglieder speichert und die Wertänderung eines Mitglieds den Wert des anderen beeinflusst.

Struktur vs. Union

Struktur Union
Mit dem Schlüsselwort Struct wird eine Struktur definiert. Union-Schlüsselwort wird verwendet, um eine Union zu definieren.
Mitglieder teilen keinen Speicher in einer Struktur. Mitglieder teilen sich den Speicherplatz in einer Union.
Jedes Element kann jederzeit in einer Struktur abgerufen werden. In einer Union kann immer nur auf ein Mitglied zugegriffen werden.
Mehrere Elemente einer Struktur können gleichzeitig initialisiert werden. Nur das erste Mitglied kann initialisiert werden.
Die Größe der Struktur entspricht der Summe der Größe jedes Elements. Die Größe der Vereinigung entspricht der Größe des größten Elements.
Der Wert eines Elements ändert sich nicht auf den Wert eines anderen Elements. Die Änderung eines Werts eines Elements wirkt sich auf andere Elementwerte aus.
Speichert verschiedene Werte für alle Mitglieder. Speichert den gleichen Wert für alle Mitglieder.

Zusammenfassung

  • Sowohl die Struktur als auch die Vereinigung sind benutzerdefinierte Datentypen in C, die funktional und konzeptionell gleich sind, sich jedoch in mancher Hinsicht stark unterscheiden.
  • Beide enthalten Variablen verschiedener Datentypen, aber sie verwenden dieselbe Syntax für die Deklaration von Variablen und den Zugriff auf Member. Während eine Struktur durch das Schlüsselwort 'struct' definiert wird, wird eine Union durch das Schlüsselwort 'union' definiert.
  • Jedes Element erhält einen separaten Speicherplatz in einer Struktur, während in einer Union der gesamte Speicherplatz dem größten Element entspricht. Alle Mitglieder teilen sich den gleichen Speicherplatz in einer Union.
  • Auf jedes Element in einer beliebigen Sequenz kann in einer Struktur zugegriffen werden, während in einer Union nur auf diese Variable zugegriffen werden kann, deren Wert kürzlich gespeichert wurde.