User Tools

Site Tools


en:pfw:struct

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
en:pfw:struct [2026-01-02 18:56] – [Was sind Structs genau?] layout mkaen: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, insbesondere in **C**, wo sie ursprünglich eingeführt wurden. Sie dienen dazu, **zusammengehörige Daten unterschiedlicher Typen zu einem neuen, benutzerdefinierten Datentyp zu bündeln**. **Structs** (kurz für „structures“ oder auf Deutsch „Strukturen“) sind ein grundlegendes Konzept in vielen Programmiersprachen, insbesondere in **C**, wo sie ursprünglich eingeführt wurden. Sie dienen dazu, **zusammengehörige Daten unterschiedlicher Typen zu einem neuen, benutzerdefinierten Datentyp zu bündeln**.
-### 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, z. B. Informationen zu einer Person (Name, Alter, Adresse).   * Sie helfen, komplexe Daten übersichtlich zu organisieren, z. B. Informationen zu einer Person (Name, Alter, Adresse).
-  * Zugriff auf Felder erfolgt mit dem Punkt-Operator `.` (bei Zeigern mit `->`)+  * 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 <stdio.h> #include <stdio.h>
Line 34: Line 34:
 . .
 ### 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. +  **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. +  **Go**: Ähnlich, structs gruppieren Felder; Methoden werden separat definiert. 
-**C#**: `struct` ist ein Werttyp (im Gegensatz zu Klassen, die Referenztypen sind).+  **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 44: 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.
 +
 +{{ :en:pfw:struct-vortrag-hans-eckes2025.pdf |}}
  
 Der Vortrag konzentriert sich auf **Peripherie**, das ist für einen Erstkontakt überschaubarer als Structs. Der einzige Unterschied ist, dass beim Definieren von Peripherie der Offset explizit eingegeben wird und bei Structs nur die Feldgröße (Datentyp). Der Vortrag konzentriert sich auf **Peripherie**, das ist für einen Erstkontakt überschaubarer als Structs. Der einzige Unterschied ist, dass beim Definieren von Peripherie der Offset explizit eingegeben wird und bei Structs nur die Feldgröße (Datentyp).
 +
 +{{ :en:pfw:struct-f.zip |}}
    
 Der Quelltext stammt ursprünglich von seinem Embedded-Forth (alles in ARM-Assembler), reverse-engineered und läuft jetzt auf SwiftForth. Der Quelltext stammt ursprünglich von seinem Embedded-Forth (alles in ARM-Assembler), reverse-engineered und läuft jetzt auf SwiftForth.
en/pfw/struct.1767376607.txt.gz · Last modified: 2026-01-02 18:56 by mka