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.
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:
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..
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 | 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. |