Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

Structures vs. Unions in C: Ein praktischer Leitfaden

Was ist eine Struktur (Structure)?

Eine Struktur ist ein benutzerdefinierter Datentyp in C, der logisch zusammengehörige Daten Elemente verschiedener Typen in einer einzigen Einheit gruppiert. Jedes Member belegt seinen eigenen zusammenhängenden Speicherbereich, sodass eine Struktur mehrere Werte gleichzeitig halten kann.

Beispiel: Ein Studentendatensatz, der Name, Matrikelnummer und Noten unter einem Variablennamen speichert.

Was ist eine Union?

Eine Union ist ebenfalls ein benutzerdefinierter Typ, aber alle Member teilen sich denselben Speicherplatz. Die Größe der Union entspricht der Größe ihres größten Members. Dieses Feature macht Unions ideal für speicherbeschränkte Szenarien, in denen nur ein Member zur Zeit benötigt wird.

Struktur deklarieren

struct Student {
    char name[60];
    int roll_no;
    float marks;
};

Beachten Sie das struct-Schlüsselwort und das Semikolon nach der schließenden Klammer.

Beispiel: Struktur verwenden

#include <stdio.h>
struct Student {
    char name[60];
    int roll_no;
    float marks;
} sdt;
int main(void) {
    printf("Enter the following information:\n");
    printf("Student name: ");
    fgets(sdt.name, sizeof(sdt.name), stdin);
    printf("Roll number: ");
    scanf("%d", &sdt.roll_no);
    printf("Marks: ");
    scanf("%f", &sdt.marks);
    printf("\nEntered data:\n");
    printf("Name: %s", sdt.name);
    printf("Roll number: %d\n", sdt.roll_no);
    printf("Marks: %.1f\n", sdt.marks);
    return 0;
}

Ausgabe (Beispiel):

Enter the following information:
Student name: James
Roll number: 21
Marks: 67
Entered data:
Name: James
Roll number: 21
Marks: 67.0

Union deklarieren

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

Beispiel: Union verwenden

#include <stdio.h>
union Item {
    int x;
    float y;
    char ch;
};
int main(void) {
    union Item it;
    it.x = 12;
    it.y = 20.2f;
    it.ch = 'a';
    printf("x = %d\n", it.x);
    printf("y = %f\n", it.y);
    printf("ch = %c\n", it.ch);
    return 0;
}

Da alle Member Speicher teilen, überschreibt das Setzen von ch die vorherigen Werte von x und y. Nur der zuletzt gespeicherte Wert ist gültig.

Struktur vs. Union

Structures vs. Unions in C: Ein praktischer Leitfaden
MerkmalStruktur (struct)Union
Deklarations-Schlüsselwortstructunion
SpeicherlayoutJedes Member erhält eigenen SpeicherplatzAlle Member teilen sich einen Speicherplatz
Ändern eines MembersBeeinflusst andere nichtÜberschreibt andere Member
InitialisierungAlle Member können gleichzeitig initialisiert werdenNur erstes Member kann initialisiert werden
GesamtgrößeSumme aller Member-GrößenGröße des größten Members
Typischer EinsatzZusammenhängende Daten verschiedener Typen speichernEinen von mehreren möglichen Typen speichern
ZugriffsmusterJedes Member jederzeit zugreifbarNur ein Member zur Zeit gültig
Flexible Array UnterstützungUnterstütztNicht unterstützt

Wann was verwenden?

Vor- und Nachteile

Struktur-Vorteile

Struktur-Nachteile

Union-Vorteile

Union-Nachteile

C Sprache

  1. Asbest vs. Glasfaser: Wichtige Unterschiede, Anwendungen und Sicherheitsaspekte
  2. C++ Struct vs. Class: Wichtige Unterschiede, Syntax und beste Anwendungsfälle
  3. C# vs C++: Klare Vergleich von Features, Performance und Use Cases
  4. C vs. C++: Wichtige Unterschiede & Wann welche Sprache wählen
  5. C vs. Java: Umfassender Vergleich von Features, Geschichte und Anwendungen
  6. strlen() vs. sizeof() in C: Unterschiede verstehen und richtig anwenden
  7. Python vs. JavaScript: Wichtige Unterschiede, Features und Entscheidungshilfen
  8. DC- vs. AC-Motoren: Wichtige Unterschiede & Kaufberatung
  9. Hartlöten vs. Weichlöten: Metallurgische Unterschiede und Praxiseinsatz
  10. Zweitakt- vs. Viertaktmotoren: Wichtige Unterschiede erklärt