Unterschied zwischen Struktur und Union in C

Schlüsseldifferenz - Struktur vs Union in c
 

Ein Array ist eine von C-Sprache unterstützte Struktur. Ein Array kann zum Speichern von Datenelementen desselben Typs verwendet werden. Wenn es eine Aussage als int-Marken gibt [10]; dann sind Marken ein Array, das zehn Marken speichern kann und alle sind Ganzzahlen. Manchmal ist es erforderlich, Datenelemente unterschiedlichen Typs an demselben Speicherort zu speichern. Ein Mitarbeiter kann beispielsweise eine Mitarbeiter-ID, einen Namen, eine Abteilung, ein Alter usw. haben. Sie haben unterschiedliche Datentypen. Daher ist ein Verfahren zum Speichern verschiedener Datenelemente als eine einzige Einheit erforderlich. Strukturen und Vereinigungen in C werden zum Speichern von Datenelementen unterschiedlichen Typs an demselben Speicherort verwendet. Eine Struktur und eine Vereinigung sind ähnlich, unterscheiden sich jedoch hauptsächlich durch die Speicherzuordnung. Der zum Speichern einer Strukturvariable erforderliche Speicher ist die Summe der Speichergröße aller Elemente. Der zum Speichern einer Union-Variable erforderliche Speicher ist der Speicher, der für das größte Element in der Union erforderlich ist. Das ist der entscheidende Unterschied zwischen Struktur und Vereinigung in C. Dieser Artikel beschreibt den Unterschied zwischen Struktur und Vereinigung in C..

INHALT

1. Übersicht und Schlüsseldifferenz
2. Was ist Struktur in C?
3. Was ist Union in C?
4. Ähnlichkeiten zwischen Struktur und Union in C
5. Side-by-Side-Vergleich - Struktur gegen Union in C in Tabellenform
6. Zusammenfassung

Was ist Struktur in C??

Eine Struktur ist ein benutzerdefinierter Datentyp in C. Sie hilft, Datenelemente verschiedener Typen zu kombinieren. Eine Struktur kann Datensätze darstellen. Ein Student kann student_id, student_name usw. haben. Anstatt jede Variable einzeln zu speichern, können all diese verschiedenen Datenelemente mithilfe einer Struktur zu einer einzigen Einheit zusammengefasst werden. Sie wird mit dem Schlüsselwort 'struct' definiert. In einer Struktur kann jederzeit auf alle seine Mitglieder zugegriffen werden. Im Folgenden wird eine abgeleitete Datentypstruktur student erstellt.

struct Student

intstudent_id;

char student_name [20];

;

Für die obige Struktur können Variablen wie folgt deklariert werden.

struct Student student1, student2, student3;

Es gibt zwei Methoden, um auf die Mitglieder der Struktur zuzugreifen. Verwenden Sie dazu den Member-Operator (.) Und den Strukturzeiger-Operator (->). Auf die Mitglieder kann über Strukturvariable_Name zugegriffen werden. Mitgliedsname. Wenn der Programmierer auf den Namen des Studenten 2 zugreifen möchte, kann er die Anweisung als printf (student2.student_namename) schreiben.

Beziehen Sie sich auf das folgende Programm mit einer Struktur.

Abbildung 01: C-Programm mit Strukturen

Nach obigem Programm ist Student eine Struktur. Es enthält student_id und student_name. Zwei Variablen des Strukturtyps werden im Hauptprogramm deklariert. Sie heißen student1 und student2. Die ID von student1 wird mit dem Memberoperator als student1.student_id = 1 mit dem Wert 1 zugewiesen. Der Name "Ann" ist eine Zeichenfolge. Daher wird es mit der Zeichenfolge-Kopierfunktion strcpy in das Mitglied student_name kopiert. Die ID und der Name werden auf ähnliche Weise an student2 vergeben. Zum Schluss werden diese Werte mit dem Operator member gedruckt.

Die zum Speichern einer Strukturvariable erforderliche Speichermenge ist die Summe der Speichergröße aller Elemente. Die student_id enthält 4 Bytes und student_name enthält 20 Bytes (jeweils ein Byte für ein Zeichen). Die Gesamtzahl von 24 Byte ist die Summe der von der Struktur benötigten Speichergröße.

Was ist Union in C??

Eine Vereinigung ist ein benutzerdefinierter Datentyp in C. Sie hilft, verschiedene Datentypen am selben Speicherort zu speichern. Ein Buch kann über Eigenschaften wie book_name, price usw. verfügen. Anstatt Variablen für jede einzelne zu erstellen, können Sie mit einer Union alle verschiedenen Datentypen mithilfe einer Union zu einer Einheit komprimieren. Es wird mit dem Schlüsselwort 'union' definiert. Im Folgenden wird ein abgeleitetes Datenunion-Buch erstellt.

unionBook

Zeichenname [20];

doppelter Preis;

;

Für die oben genannte Vereinigung können Variablen wie folgt deklariert werden.

Gewerkschaftsbuch book1, book2;

Es gibt zwei Methoden, um auf die Mitglieder der Gewerkschaft zuzugreifen. Verwenden Sie dazu den Member-Operator (.) Und den Strukturzeiger-Operator (->). Auf die Mitglieder kann mit union_variable_name zugegriffen werden. Mitgliedsname. Wenn der Programmierer auf den Namen des Buches1 zugreifen möchte, kann er die Anweisung als printf (book1.name) schreiben.

Verweisen Sie das unten stehende Programm mit einer Gewerkschaft.

Abbildung 02: C-Programm mit Vereinigung

Nach dem obigen Programm ist das Buch eine Gewerkschaft. Das book1 ist eine Variable vom Typ Union. Der Name und der Preis werden mit Werten belegt. In union kann jeweils nur auf eines seiner Mitglieder zugegriffen werden, und alle anderen Mitglieder haben Müllwerte. Der Wert von ID wird nicht ordnungsgemäß gedruckt, der Preis wird jedoch ordnungsgemäß gedruckt.

Abbildung 03: Modifiziertes C-Programm mit Union

Nach dem obigen Programm ist Book eine Gewerkschaft. Die Book1 und Book2 sind Union-Typ-Variablen. Zunächst wird der Wert für den Namen von book1 zugewiesen und gedruckt. Dann wird der Wert für den Namen von book2 zugewiesen und gedruckt. Alle Mitglieder werden korrekt gedruckt, da jeweils ein Mitglied verwendet wird. Der zum Speichern einer Union erforderliche Speicher ist der Speicher, der für das größte Element der Union erforderlich ist. Im obigen Programm beträgt die Namensvariable 20 Byte. Es ist größer als der Preis. Die Speicherzuordnung für die Union beträgt also 20 Byte.

Was sind die Ähnlichkeiten zwischen Struktur und Union in C??

  • Sowohl Struktur als auch Union in C sind benutzerdefinierte Datentypen.
  • Mit Structure und Union in C können verschiedene Datentypen am selben Speicherort gespeichert werden.

Was ist der Unterschied zwischen Struktur und Union in C??

Struktur gegen Union in C

Struktur ist ein benutzerdefinierter Datentyp in der C-Sprache, der das Kombinieren von Daten verschiedener Typen ermöglicht. Union ist ein benutzerdefinierter Datentyp in der C-Sprache, der das Kombinieren von Daten verschiedener Typen ermöglicht.
 Zugänglichkeit
In einer Struktur können alle Mitglieder jederzeit aufgerufen werden. In einer Gewerkschaft kann jeweils nur auf eines seiner Mitglieder zugegriffen werden, und alle anderen Mitglieder enthalten Speicherwerte.
Speicherzuweisung
Der zum Speichern einer Strukturvariable erforderliche Speicher ist die Summe der Speichergröße aller Elemente. Der zum Speichern einer Union-Variable erforderliche Speicher ist der Speicher, der für das größte Element in der Union erforderlich ist.
 Stichwort
Das Schlüsselwort zum Definieren einer Struktur lautet 'struct'.. Das Schlüsselwort für die Definition einer Gewerkschaft ist "Gewerkschaft"..

Zusammenfassung - Struktur vs Union in c

In einem Array werden die Datenelemente desselben Typs gespeichert. Manchmal ist es notwendig, Datenelemente unterschiedlichen Typs am selben Speicherort zu speichern. Die Programmiersprache C bietet Struktur und Vereinigung, um diese Aufgabe auszuführen. Beide sind benutzerdefinierte Datentypen. Der zum Speichern einer Strukturvariable erforderliche Speicher ist die Summe der Speichergröße aller Elemente. Der zum Speichern einer Union-Variable erforderliche Speicher ist der Speicher, der für das größte Element in der Union erforderlich ist. Dies ist der Unterschied zwischen Struktur und Vereinigung in C.

Referenz:

1.Point, Tutorials. "Strukturen in C.", Tutorials Punkt, 15. August 2017. Hier verfügbar 
2.Point, Tutorials. "Gewerkschaften in C." , Tutorials Punkt, 15. August 2017. Hier verfügbar