Unterschied zwischen Struktur und Union in C

Was ist Struktur?

Eine Struktur ist ein benutzerdefinierter Datentyp in der Programmiersprache C, der logisch zusammengehörige Datenelemente unterschiedlicher Datentypen miteinander kombiniert.

Alle Strukturelemente werden an zusammenhängenden Speicherorten gespeichert. Strukturtypvariablen können mehr als ein Datenelement unterschiedlicher Datentypen unter einem Namen speichern.

Was ist Union?

Union ist ein benutzerdefinierter Datentyp, genau wie eine Struktur. Union kombiniert Objekte unterschiedlicher Art und Größe miteinander. Die Union-Variable weist den Speicherplatz zu, der dem Platz für die größte Union-Variable entspricht. Dadurch können unterschiedliche Objekttypen denselben Standort nutzen.

Syntax der Deklarationsstruktur

struct [name of the structure]
   {
       type member1;
       type member2;
       type member3;
   };

Die Struktur wird mit dem Schlüsselwort „struct“ und dem Namen der Struktur deklariert. Nummer 1, Nummer 2, Nummer 3 sind einzelne Mitglieder der Struktur. Der Körperteil wird mit einem Semikolon (;) abgeschlossen.

Beispiel für eine Struktur in der C-Programmierung

#include <stdio.h>
struct student {
    char name[60];
    int roll_no;
    float marks;
} sdt;
int main() {
    printf("Enter the following information:\n");
    printf("Enter student name: ");
    fgets(sdt.name, sizeof(sdt.name), stdin);
    printf("Enter student roll number: ");
    scanf("%d", & sdt. roll_no);
    printf("Enter students marks: ");
    scanf("%f", & sdt.marks);
    printf("The information you have entered is: \n");
    printf("Student name: ");
    printf("%s", sdt.name);
    printf("Student roll number: %d\n", sdt. roll_no);
    printf("Student marks: %.1f\n", sdt.marks);
    return 0;
}

Im obigen Programm wird eine Struktur namens Student erstellt. Diese Struktur hat drei Datenelemente: 1) Name (Zeichenfolge), 2) roll_no (Ganzzahl) und 3) Markierungen (Float).

Anschließend wird eine Strukturvariable sdt erstellt, um Schülerinformationen zu speichern und auf dem Computerbildschirm anzuzeigen.

Ausgang:

Geben Sie die folgenden Informationen:

Geben Sie den Namen des Schülers ein: James

Geben Sie die Matrikelnummer ein: 21

Geben Sie die Noten der Schüler ein: 67

Die von Ihnen eingegebenen Informationen sind:

Schülername: John

Studentenlistennummer: 21

Schülernoten: 67.0

Syntax der Unionserklärung

union [name of union]
    {
       type member1;
       type member2;
       type member3;
    };

Union wird mit dem Schlüsselwort „union“ und dem Namen der Union deklariert. Nummer 1, Nummer 2, Nummer 3 sind einzelne Gewerkschaftsmitglieder. Der Körperteil wird mit einem Semikolon (;) abgeschlossen.

Beispiel für Union in der C-Programmierung

#include <stdio.h>

union item
{
    int x;
    float y;
    char ch;
};

int main( )
{
    union item it;
    it.x = 12;
    it.y = 20.2;
    it.ch = 'a';
    
    printf("%d\n", it.x);
    printf("%f\n", it.y);
    printf("%c\n", it.ch);
    
    return 0;
}

Ausgang:

1101109601

20.199892

a

Im obigen Programm können Sie sehen, dass die Werte von x und y beschädigt werden. Nur die Variable ch gibt das erwartete Ergebnis aus. Dies liegt daran, dass in der Union der Speicherort von allen Mitgliedsdatentypen gemeinsam genutzt wird.

Daher belegt das einzige Datenelement, dessen Wert derzeit gespeichert ist, Speicherplatz. Der Wert der Variablen ch wurde zuletzt gespeichert, also der Wert des Rests Variablen ist verloren.

Struktur vs. Union

Struktur vs. Union
Struktur vs. Union

Hier ist der wichtige Unterschied zwischen Struktur und Vereinigung:

Struktur Union
Sie können ein Strukturschlüsselwort verwenden, um eine Struktur zu definieren. Sie können ein Union-Schlüsselwort verwenden, um eine Union zu definieren.
Jedem Mitglied innerhalb der Struktur wird ein eindeutiger Speicherort zugewiesen. Bei der Union wird ein Speicherort von allen Datenmitgliedern gemeinsam genutzt.
Das Ändern des Werts eines Datenelements hat keine Auswirkungen auf andere Datenelemente in der Struktur. Wenn Sie den Wert eines Datenelements ändern, ändert sich auch der Wert anderer Datenelemente in der Union.
Es ermöglicht Ihnen, mehrere Mitglieder gleichzeitig zu initialisieren. Es ermöglicht Ihnen, nur das erste Mitglied der Union zu initialisieren.
Die Gesamtgröße der Struktur ist die Summe der Größe jedes Datenelements. Die Gesamtgröße der Union entspricht der Größe des größten Datenelements.
Es wird hauptsächlich zum Speichern verschiedener Datentypen verwendet. Es wird hauptsächlich zum Speichern eines der vielen verfügbaren Datentypen verwendet.
Es belegt Platz für jedes einzelne Mitglied, das in inneren Parametern geschrieben ist. Es belegt Platz für ein Mitglied mit der höchsten in inneren Parametern geschriebenen Größe.
Sie können jedes Mitglied gleichzeitig abrufen. Sie können jeweils auf ein Mitglied der Gewerkschaft zugreifen.
Es unterstützt flexible Arrays. Es unterstützt kein flexibles Array.

Vorteile der Struktur

Hier sind die Vorteile/Vorteile der Verwendung von Struktur:

  • Strukturen sammeln mehr als eine Dateneinheit zum gleichen Thema am selben Ort.
  • Dies ist hilfreich, wenn Sie Daten ähnlicher Datentypen und Parameter wie Vorname, Nachname usw. erfassen möchten.
  • Die Pflege ist sehr einfach, da wir den gesamten Datensatz mit einem einzigen Namen darstellen können.
  • Strukturell können wir mit einem einzigen Parameter einen vollständigen Satz von Datensätzen an jede Funktion übergeben.
  • Sie können eine Array-Struktur verwenden, um mehr Datensätze mit ähnlichen Typen zu speichern.

Vorteile der Gewerkschaft

Hier sind die Vor- und Vorteile der Verwendung von Union:

  • Es belegt im Vergleich zur Struktur weniger Speicher.
  • Wenn Sie Union verwenden, kann nur auf die letzte Variable direkt zugegriffen werden.
  • Union wird verwendet, wenn Sie denselben Speicherort für zwei oder mehr Datenelemente verwenden müssen.
  • Es ermöglicht Ihnen, Daten nur eines Datenelements zu speichern.
  • Der zugewiesene Speicherplatz entspricht der maximalen Größe des Datenelements.

Nachteile der Struktur

Hier sind die Vor- und Nachteile der Verwendung von Struktur:

  • Wenn die Komplexität eines IT-Projekts die Grenzen überschreitet, wird es schwer, es zu bewältigen.
  • Die Änderung einer Datenstruktur in einem Code erfordert Änderungen an vielen anderen Stellen. Daher ist es schwierig, die Änderungen zu verfolgen.
  • Die Struktur ist langsamer, da sie Speicherplatz für alle Daten benötigt.
  • Sie können in der Struktur jeweils jedes Mitglied abrufen, während Sie in der Union jeweils auf ein Mitglied zugreifen können.
  • Die Struktur belegt Platz für jedes einzelne in innere Parameter geschriebene Mitglied, während die Union Platz für ein Mitglied mit der höchsten in inneren Parametern geschriebenen Größe einnimmt.
  • Struktur unterstützt flexible Anordnung. Union unterstützt kein flexibles Array.

Nachteile der Gewerkschaft

Hier sind die Vor- und Nachteile der Verwendung von Union:

  • Sie können jeweils nur ein Gewerkschaftsmitglied einsetzen.
  • Es können nicht alle Union-Variablen gleichzeitig initialisiert oder mit unterschiedlichen Werten verwendet werden.
  • Union weist allen seinen Mitgliedern einen gemeinsamen Speicherplatz zu.

WICHTIGSTE UNTERSCHIEDE:

  • Jedem Mitglied innerhalb der Struktur wird ein eindeutiger Speicherort zugewiesen, während in der Union ein Speicherort von allen Datenmitgliedern gemeinsam genutzt wird.
  • Das Ändern des Werts eines Datenelements hat keine Auswirkungen auf andere Datenelemente in der Struktur, während das Ändern des Werts eines Datenelements den Wert anderer Datenelemente in der Union ändert.
  • Struktur wird hauptsächlich zum Speichern verschiedener Datentypen verwendet, während Union hauptsächlich zum Speichern eines der vielen Datentypen verwendet wird.
  • In der Struktur können Sie jedes Mitglied gleichzeitig abrufen, in der Union hingegen können Sie jeweils auf ein Mitglied zugreifen.
  • Structure unterstützt flexible Arrays, während Union kein flexibles Array unterstützt.

Schauen Sie sich auch unser C-Tutorial für Anfänger an:- Mehr Info