Was ist der Unterschied zwischen Structure Union und Enum in C?

Struktur ist ein Datentyp, der verschiedene Datentypen in demselben Speicherort speichert. Die Gesamtspeichergröße der Struktur ist die Summe der Speichergrößen aller ihrer Mitglieder. Im Gegensatz dazu ist Union ein Datentyp, der verschiedene Datentypen in demselben Speicherort speichert. Die Gesamtspeichergröße hängt von der Speichergröße der größten Elemente ab. Inzwischen ist Enum ein Datentyp, der Integralkonstanten speichert. Das ist der Hauptunterschied zwischen Strukturvereinigung und Aufzählung in C.

Bei der Programmierung kann eine Variable einen Wert eines einzelnen Datentyps speichern. Manchmal ist es erforderlich, Variablen verschiedener Typen als eine Einheit zu speichern. Struktur und Vereinigung sind zwei Methoden, um mehrere Variablen unterschiedlichen Typs als eine einzige Variable zu speichern. Auf der anderen Seite ist enum ein Datentyp, um eine Gruppe benannter Konstanten zu deklarieren. All dies sind benutzerdefinierte Datentypen.

Wichtige Bereiche

1. Was ist Struktur?
     - Definition, Funktionalität
2. Was ist Union?
    - Definition, Funktionalität
3. Was ist Enum?
    - Definition, Funktionalität
4. Was ist der Unterschied zwischen Structure Union und Enum in C?
    - Vergleich der wichtigsten Unterschiede

Schlüsselbegriffe

C, Enum, Struktur, Union

Was ist Struktur?

Eine Struktur ist eine einzelne Variable, die Daten mehrerer Typen enthalten kann. Es ist eine Menge von Variablen unterschiedlicher Datentypen. Ein Beispiel für eine Struktur ist wie folgt.

Abbildung 1: Struktur in C

Gemäß dem obigen Programm enthält die als Komplex bezeichnete Struktur zwei Eigenschaften. reell repräsentiert den Realteil der komplexen Zahl, während img den imaginären Teil der komplexen Zahlen darstellt. Im Hauptprogramm deklariert Zeile 10 zwei Variablen vom Typ type, die als c1 und c2 bezeichnet werden. Zeile 11 bis Zeile 14 geben Werte für real und img von c1 und c2 an. In Zeile 15 speichert die Variable r die Summe der reellen Werte von c1 und c2. In ähnlicher Weise speichert die Variable i in Zeile 16 die Summe der img-Werte von c1 und c2. Schließlich wird die Summe der komplexen Zahlen auf der Konsole angezeigt.

Was ist Union?

Union erlaubt das Speichern verschiedener Datentypen am selben Speicherort. Ein Mitarbeiter kann beispielsweise Eigenschaften wie Name, Gehalt und Stadt haben. Anstatt Variablen für jede von ihnen anzulegen, ist es möglich, eine Union zu verwenden. Es komprimiert alle verschiedenen Datentypen in einer einzigen Einheit.

Abbildung 2: Union in C

Der Abstand zwischen zwei Punkten p1 und p2 ist wie folgt.  

Abstand = (p2.a - p1.a) 2 + (p2.b - p1.b) 2

Nach dem obigen Programm ist Point eine Gewerkschaft. Es hat zwei Eigenschaften: a und b. Im Hauptprogramm sind distance, t1 und t2 Variablen vom Typ Float; p1 und p2 sind Typunion. Zeile 12 bis 15 gibt a und b von p1 und a und b von p2 Werte. t1 und t2 sind Variablen, die die Leistungswerte speichern. In Zeile 18 speichert der variable Abstand den Abstand zwischen Punkt p1 und p2. Schließlich wird die Antwort auf der Konsole angezeigt.

Union und Struktur sind sehr ähnlich, aber sie unterscheiden sich. In Gewerkschaften ist der gesamte Speicher, der zum Speichern der Union erforderlich ist, der Speicher des größten Elements dieser Union. Angenommen, eine Union hat drei Eigenschaften: Name, Gehalt und ID. Der Name benötigt 32 Bytes, und das Gehalt und die ID benötigen jeweils 4 Bytes. Die größte Anzahl beträgt 32 Byte, und die Speicherzuordnung für die Union beträgt 32 Byte.

Was ist Enum?

Aufzählung steht für Aufzählung. Es ist ein benutzerdefinierter Datentyp, der aus ganzzahligen Konstanten besteht. Ein Beispiel ist wie folgt.

Abbildung 3: Aufzählung in C

Die Woche ist eine Aufzählung. Standardmäßig hat Sonntag den Wert 0, Montag hat den Wert 1, Dienstag hat den Wert 2 usw. Im Hauptprogramm ist heute eine Aufzählung vom Typ week. Es wird mit Freitag zugewiesen. Der nächste Tag ist Samstag, und es hat konstante 6. Daher wird die Ausgabe "Tag 6" auf der Konsole angezeigt.

Angenommen, der Programmierer hat die Aufzählung wie folgt deklariert.

Aufzählungswoche sonntag = 1, montag, dienstag, mittwoch, donnerstag, freitag, samstag;

Das Hauptprogramm gibt dann die Ausgabe als "Tag 7" aus..

Unterschied zwischen Structure Union und Enum in C

Definition

Struktur ist ein Datentyp, der verschiedene Datentypen an demselben Speicherort speichert und dessen Gesamtspeichergröße der Struktur die Summe der Speichergrößen aller seiner Mitglieder ist. Im Gegensatz dazu ist Union ein Datentyp, der verschiedene Datentypen an demselben Speicherort speichert und dessen Gesamtspeichergröße von der Speichergröße der größten Elemente abhängt. Enum ist ein Datentyp in C-Sprache, der einen Werttyp zum Deklarieren einer Gruppe von benannten Konstanten darstellt. Diese Definitionen beschreiben den grundlegenden Unterschied zwischen Strukturvereinigung und Aufzählung in C.

Stichwort

Das Schlüsselwort zum Deklarieren einer Struktur lautet 'struct', während das Schlüsselwort zum Deklarieren einer Union 'union' ist und das Schlüsselwort zum Deklarieren einer Enumeration 'enum'..

Verwendungszweck

Es gibt einen Unterschied zwischen Struktur-Union und Enumeration in C, auch basierend auf ihrer Verwendung. Sowohl die Struktur als auch die Vereinigung unterstützen das Speichern von Daten verschiedener Typen als eine einzige Einheit, während Enum dazu beiträgt, einer Gruppe von Namen Konstanten zuzuweisen, damit das Programm einfacher zu lesen, zu verwalten und zu verstehen ist. 

Fazit

Struktur ist ein Datentyp, der verschiedene Datentypen in demselben Speicherort speichert. Die Gesamtspeichergröße der Struktur ist die Summe der Speichergrößen aller ihrer Mitglieder. Im Gegensatz dazu ist Union ein Datentyp, der verschiedene Datentypen in demselben Speicherort speichert. Die Gesamtspeichergröße hängt von der Speichergröße der größten Elemente ab. Inzwischen ist Enum ein Datentyp, der Integralkonstanten speichert. Dies ist also der Hauptunterschied zwischen Strukturvereinigung und Aufzählung in C.

Referenz:

1. „C-Programmierstruktur“. Python-Strings (mit Beispielen), hier verfügbar.
2. „C-Programmiervereinigungen“. Python-Strings (mit Beispielen), hier verfügbar.
3. „C-Programmieraufzählung“. Python-Strings (mit Beispielen), hier verfügbar.