en:pfw:struct
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| en:pfw:struct [2026-01-02 18:54] – [Was sind Structs genau?] Layout besser mka | en:pfw:struct [2026-01-02 19:19] (current) – [STRUCT und PERIPH in Forth] layout mka | ||
|---|---|---|---|
| Line 3: | Line 3: | ||
| **Structs** (kurz für „structures“ oder auf Deutsch „Strukturen“) sind ein grundlegendes Konzept in vielen Programmiersprachen, | **Structs** (kurz für „structures“ oder auf Deutsch „Strukturen“) sind ein grundlegendes Konzept in vielen Programmiersprachen, | ||
| - | ### Was sind Structs genau? | + | ### Was sind Structs genau?### |
| * Ein Struct ist eine **Sammlung von Variablen** (auch Felder oder Member genannt), die unter einem gemeinsamen Namen gruppiert werden. | * Ein Struct ist eine **Sammlung von Variablen** (auch Felder oder Member genannt), die unter einem gemeinsamen Namen gruppiert werden. | ||
| * Im Gegensatz zu Arrays können die Felder **unterschiedliche Datentypen** haben (z. B. int, char, float, Zeiger usw.). | * Im Gegensatz zu Arrays können die Felder **unterschiedliche Datentypen** haben (z. B. int, char, float, Zeiger usw.). | ||
| * Sie helfen, komplexe Daten übersichtlich zu organisieren, | * Sie helfen, komplexe Daten übersichtlich zu organisieren, | ||
| + | * Zugriff auf Felder erfolgt mit dem Punkt-Operator `.` (bei Zeigern mit `->`). | ||
| - | ### Beispiel in C (der klassischen Sprache für Structs) | + | ### Beispiel in C (der klassischen Sprache für Structs)### |
| ```c | ```c | ||
| #include < | #include < | ||
| Line 31: | Line 32: | ||
| } | } | ||
| ``` | ``` | ||
| - | - Zugriff auf Felder erfolgt mit dem Punkt-Operator `.` (bei Zeigern mit `->`). | + | . |
| ### Structs in anderen Programmiersprachen | ### Structs in anderen Programmiersprachen | ||
| - | - **C++**: Fast identisch zu C, aber Structs können auch Methoden, Konstruktoren und Vererbung enthalten (ähnlich wie Klassen; der Hauptunterschied ist, dass Member standardmäßig public sind). | + | * **C++**: Fast identisch zu C, aber Structs können auch Methoden, Konstruktoren und Vererbung enthalten (ähnlich wie Klassen; der Hauptunterschied ist, dass Member standardmäßig public sind). |
| - | - **Rust**: Structs sind zentral und sehr sicher. Es gibt named structs, tuple structs und unit structs. Sie unterstützen Methoden über `impl`-Blöcke. | + | |
| - | - **Go**: Ähnlich, structs gruppieren Felder; Methoden werden separat definiert. | + | |
| - | - **C#**: `struct` ist ein Werttyp (im Gegensatz zu Klassen, die Referenztypen sind). | + | |
| Structs sind also ein universelles Werkzeug, um Daten zu strukturieren und Code lesbarer zu machen. Sie stammen aus C und wurden in vielen modernen Sprachen übernommen oder erweitert. ((„Konstrukt“ unterscheidet sich von „Konstruktion“ dadurch, dass es stärker den **Ergebniszustand** (das fertige Gebilde, oft abstrakt oder künstlich) betont, während „Konstruktion“ eher den Prozess oder die Bauweise meint. | Structs sind also ein universelles Werkzeug, um Daten zu strukturieren und Code lesbarer zu machen. Sie stammen aus C und wurden in vielen modernen Sprachen übernommen oder erweitert. ((„Konstrukt“ unterscheidet sich von „Konstruktion“ dadurch, dass es stärker den **Ergebniszustand** (das fertige Gebilde, oft abstrakt oder künstlich) betont, während „Konstruktion“ eher den Prozess oder die Bauweise meint. | ||
| Line 43: | Line 44: | ||
| ===== STRUCT und PERIPH in Forth ===== | ===== STRUCT und PERIPH in Forth ===== | ||
| Hans Eckes hat 2025 in Burladingen auf der Forth-Tagung über Structs und Peripherals referiert. Die Folien seines Vortrags und den Quelltext mit Beispielen haben wir hier für euch zugänglich gemacht. | Hans Eckes hat 2025 in Burladingen auf der Forth-Tagung über Structs und Peripherals referiert. Die Folien seines Vortrags und den Quelltext mit Beispielen haben wir hier für euch zugänglich gemacht. | ||
| + | |||
| + | {{ : | ||
| Der Vortrag konzentriert sich auf **Peripherie**, | Der Vortrag konzentriert sich auf **Peripherie**, | ||
| + | |||
| + | {{ : | ||
| Der Quelltext stammt ursprünglich von seinem Embedded-Forth (alles in ARM-Assembler), | Der Quelltext stammt ursprünglich von seinem Embedded-Forth (alles in ARM-Assembler), | ||
en/pfw/struct.1767376476.txt.gz · Last modified: 2026-01-02 18:54 by mka