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

C-Structs meistern: Definition, Variablen, Zugriff & fortgeschrittene Beispiele

C-Structs meistern

Lernen Sie, wie man C-Structs definiert, erstellt und verwendet – mit klaren Beispielen und Best Practices.

Was ist ein C-Struct?

Ein struct (kurz für Structure) ist ein zusammengesetzter Datentyp, der Variablen verschiedener Typen unter einem gemeinsamen Namen gruppiert. Er ist die Grundlage für die Erstellung komplexer Datenstrukturen in C.


Eine Struktur definieren

Bevor Sie Variablen eines Struct-Typs erstellen können, müssen Sie den Typ definieren. Das Schlüsselwort struct leitet die Definition ein:

struct structureName {
    dataType member1;
    dataType member2;
    … 
};

Beispiel:

struct Person {
    char name[50];
    int citNo;
    float salary;
};

Dies erstellt einen neuen Typ namens struct Person. Sie können nun Variablen dieses Typs deklarieren.


Struktur-Variablen erstellen

Die Definition eines Struct-Typs allokiert keinen Speicher. Um damit zu arbeiten, deklarieren Sie Variablen:

struct Person {
    // members
};
int main() {
    struct Person person1, person2, p[20];
    return 0;
}

Alternativ können Sie Definition und Variablendeklaration kombinieren:

struct Person {
    // members
} person1, person2, p[20];

Auf Struct-Mitglieder zugreifen

Zwei Operatoren rufen Mitglieder ab:

  1. . – Member-Zugriffsoperator.
  2. -> – Zeiger-auf-Struct-Member-Operator (wird in einem separaten Tutorial behandelt).

Um das salary von person2 zu lesen oder zu ändern:

person2.salary

Beispiel 1: Struct in C verwenden

#include <stdio.h>
#include <string.h>
struct Person {
    char name[50];
    int citNo;
    float salary;
} person1;
int main() {
    strcpy(person1.name, "George Orwell");
    person1.citNo = 1984;
    person1.salary = 2500;
    printf("Name: %s\n", person1.name);
    printf("Citizenship No.: %d\n", person1.citNo);
    printf("Salary: %.2f", person1.salary);
    return 0;
}

Ausgabe

Name: George Orwell
Citizenship No.: 1984
Salary: 2500.00

Beachten Sie, dass strcpy() den String in das festgelegte char-Array kopiert, da der Zuweisungsoperator nicht direkt mit Arrays verwendet werden kann.


typedef mit Structs verwenden

typedef-Schlüsselwort erstellt einen Alias für einen Typ, was Deklarationen vereinfacht:

typedef struct Distance {
    int feet;
    float inch;
} distances;
int main() {
    distances d1, d2;
}

Ohne typedef müssten Sie schreiben:

struct Distance d1, d2;

Beispiel 2: Alias in der Praxis

#include <stdio.h>
#include <string.h>
typedef struct Person {
    char name[50];
    int citNo;
    float salary;
} person;
int main() {
    person p1;
    strcpy(p1.name, "George Orwell");
    p1.citNo = 1984;
    p1.salary = 2500;
    printf("Name: %s\n", p1.name);
    printf("Citizenship No.: %d\n", p1.citNo);
    printf("Salary: %.2f", p1.salary);
    return 0;
}

Ausgabe

Name: George Orwell
Citizenship No.: 1984
Salary: 2500.00

Verschachtelte Strukturen

Structs können andere Structs enthalten, was hierarchische Datenmodellierung ermöglicht:

struct complex {
    int imag;
    float real;
};
struct number {
    struct complex comp;
    int integers;
} num1, num2;

Um imag von num2 auf 11 zu setzen:

num2.comp.imag = 11;

Beispiel 3: Verschachtelte Structs in Aktion

#include <stdio.h>
struct complex {
    int imag;
    float real;
};
struct number {
    struct complex comp;
    int integer;
} num1;
int main() {
    num1.comp.imag = 11;
    num1.comp.real = 5.25;
    num1.integer = 6;
    printf("Imaginary Part: %d\n", num1.comp.imag);
    printf("Real Part: %.2f\n", num1.comp.real);
    printf("Integer: %d", num1.integer);
    return 0;
}

Ausgabe

Imaginary Part: 11
Real Part: 5.25
Integer: 6

Warum Structs in C verwenden?

Angenommen, Sie müssen den Namen, die Staatsbürgerschaftsnummer und das Gehalt einer Person speichern. Ohne Structs würden Sie für jedes Feld jeder Person separate Variablen erstellen, was schnell zu Code-Duplikation und Verwirrung führt. Structs kapseln zusammengehörige Daten in eine einzige logische Einheit, was saubereren Code und einfachere Wartung fördert.


Was kommt als Nächstes?

  • Structs und Zeiger
  • Structs an Funktionen übergeben

C Sprache

  1. C# Hello World – Ihre erste C#-Anwendung erstellen
  2. C# Keywords und Identifiers verstehen: Regeln, Listen und Best Practices
  3. C# Variablen & Primitive Datentypen meistern: Der komplette Guide
  4. C# Operatoren – Umfassender Leitfaden zu Operatoren in C#
  5. C# Bitweise und Bit-Shift-Operatoren meistern: Umfassender Leitfaden
  6. C# Grundlagen: Eingabe und Ausgabe Essentials
  7. C# Ausdrücke, Anweisungen & Blöcke: Umfassender Leitfaden mit Beispielen
  8. C# Kommentare meistern: Arten, Best Practices und XML-Dokumentation
  9. C# Switch Statement meistern: Syntax, Beispiele & Best Practices
  10. C# Ternärer Operator: Knapper Leitfaden zu bedingten Ausdrücken