Unterschied zwischen Struktur und Union

Sowohl die Struktur als auch die Vereinigung sind vom Benutzer definierte Datentypen in C-Sprache und sind konzeptionell gleich. Sie unterscheiden sich jedoch in gewisser Weise in der Art und Weise, wie der Speicher ihren Mitgliedern zugewiesen wird. Sie sind ähnlich deklariert, funktionieren aber anders. Sie ermöglichen dem Benutzer, verschiedene Datentypen unter einem einzigen Namen zu kombinieren. Während für die Deklaration von Strukturvariablen ein separater Speicherplatz für jedes Member verwendet wird, verwenden die verschiedenen Member einer Union-Variable denselben Speicherplatz. Untersuchen wir den Unterschied zwischen Struktur und Vereinigung ist das Detail.

Was ist Struktur??

Eine Struktur ist nur ein anderer benutzerdefinierter Datentyp in C, der es dem Benutzer ermöglicht, Datentypen verschiedener Art zu einem einzigen Typ in einem Speicherblock zu kombinieren. Eine Struktur kann sowohl einfache als auch komplexe Datentypen enthalten, die miteinander verwandt sind, was sonst keinen Sinn macht. Jedes Mitglied in einer Struktur erhält einen eigenen Speicherplatz, sodass jederzeit darauf zugegriffen werden kann.

Eine Struktur wird verwendet, wenn viele Daten gruppiert werden müssen, z. B. ein Verzeichnis, in dem Informationen zu vielen Mitgliedern in einem Buch gespeichert sind, oder ein Adressbuch, in dem alle Informationen zu einem einzelnen Kontakt gespeichert werden - Name, Adresse, Kontaktnummer usw. Die Adresse jedes Mitglieds wird in aufsteigender Reihenfolge angegeben, was bedeutet, dass der Speicher jedes Mitglieds mit unterschiedlichen Versatzwerten beginnt. Wenn Sie den Wert eines Mitglieds ändern, hat dies keine Auswirkungen auf andere Mitglieder.

Mit einem Schlüsselwort 'struct' wird eine Struktur unterschiedlicher Datentypen unter einem einzigen Namen definiert. Wenn Sie beispielsweise eine Mitarbeiterdatenbank erstellen möchten, müssen Sie den Namen, das Alter, das Telefon und die Gehaltsdetails eines Mitarbeiters unter einer einzigen Entität speichern. Dies geschieht mit dem Schlüsselwort 'struct', das dem Compiler dann mitteilt, dass eine Struktur deklariert wurde.

Strukturmitarbeiter

String-Name;

String Alter;

Schnur Telefon;

String-Gehalt;

emp1, emp2;

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

Auf Mitglieder einer Struktur können zwei Arten von Operatoren zugreifen:

  1. Mitgliedsbetreiber
  2. Strukturzeigeroperator

Was ist Union??

Es ist ein spezieller Datentyp, der in C verwendet wird, und der Benutzer kann Datentypen unterschiedlicher Art am selben Speicherort 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 Gewerkschaft und sie ist groß genug, um alle ihre Mitglieder aufzunehmen.

Wenn eine Variable einer Union zugeordnet wird, ordnet der Compiler den Speicher zu, indem er die Größe des größten Speichers berücksichtigt, 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 Gewerkschaft gleich, dh jedes Mitglied beginnt mit dem gleichen Offsetwert. Wenn Sie den Wert eines Mitglieds ändern, wirkt sich dies auch auf die Werte anderer Mitglieder aus. Eine Union kann verwendet werden, wenn Sie etwas speichern möchten, das einem von mehreren Datentypen entspricht.

Gewerkschaftsangestellter

Zeichenname [32];

int alter;

Float-Gehalt;

;

Das Schlüsselwort 'union' definiert hier die Union, die der Deklaration der Struktur sehr ähnlich ist. Die Variable kann entweder einen Zeichenfolgewert speichern, der 'Name des Angestellten' ist, ein ganzzahliger Wert, der das 'Alter des Angestellten' ist, oder ein 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. Speicherzuordnung

Für die Mitglieder innerhalb einer Struktur wird ein separater Speicherplatz zugewiesen, und die Mitglieder haben unterschiedliche Adressen, die keinen Speicher verwenden. Auf der anderen Seite hat eine Union den gleichen Speicherplatz für alle Mitglieder, so dass der Speicherplatz gemeinsam genutzt wird.

3. Mitgliederzugang

Eine Gewerkschaft speichert jeweils einen einzelnen Wert für alle Mitglieder, wobei jeweils nur ein Mitglied zugänglich ist. Während mehrere Werte in einer Struktur gespeichert werden können, kann auf jeden Elementwert jederzeit zugegriffen werden.

4. Größe

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

5. Initialisierung

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

5. Wert

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

Struktur vs. Union

Struktur Union
Mit dem Schlüsselwort Struct wird eine Struktur definiert. Union-Schlüsselwort wird zur Definition einer Union verwendet.
Mitglieder teilen sich den Speicher in einer Struktur nicht. Mitglieder teilen sich den Speicherplatz in einer Union.
Jedes Mitglied kann jederzeit in einer Struktur abgerufen werden. In einer Gewerkschaft kann jeweils nur ein Mitglied aufgerufen werden.
Mehrere Member 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 Mitglieds. Die Größe der Gewerkschaft entspricht der Größe des größten Mitglieds.
Wenn Sie den Wert eines Mitglieds ändern, hat dies keinen Einfluss auf den Wert eines anderen Elements. Eine Änderung des Werts eines Mitglieds wirkt sich auf andere Mitgliederwerte aus.
Speichert unterschiedliche Werte für alle Mitglieder. Speichert den gleichen Wert für alle Mitglieder.

Zusammenfassung

  • Sowohl die Struktur als auch die Vereinigung sind vom Benutzer definierte Datentypen in C, die funktional und konzeptionell gleich sind, sich jedoch in gewisser Weise sehr unterscheiden.
  •  Beide enthalten Variablen unterschiedlicher Datentypen, verwenden jedoch dieselbe Syntax für die Deklaration von Variablen und für 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 Mitglied erhält einen separaten Speicherplatz in einer Struktur, während in einer Union der gesamte Speicherplatz dem größten Element entspricht. Alle Mitglieder haben den gleichen Speicherplatz in einer Union.
  • Auf jedes Member in einer beliebigen Reihenfolge kann in einer Struktur zugegriffen werden, während in einer Union nur auf diese Variable zugegriffen werden kann, deren Wert kürzlich gespeichert wurde.