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.
. (bei Zeigern mit ->).#include <stdio.h> #include <string.h> struct Person { // Definition des Structs char name[50]; int alter; float groesse; }; int main() { struct Person p1; // Instanz erstellen strcpy(p1.name, "Anna"); p1.alter = 25; p1.groesse = 1.68; printf("Name: %s, Alter: %d, Größe: %.2f m\n", p1.name, p1.alter, p1.groesse); return 0; }
.
impl-Blöcke.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. 1)
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.
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 Quelltext stammt ursprünglich von seinem Embedded-Forth (alles in ARM-Assembler), reverse-engineered und läuft jetzt auf SwiftForth.
Der Quelltext ist dafür gedacht, von jedem der mag, gelesen und angepasst zu werden. Hans erklärt Idee, Syntax, und Anwendung in den Kommentaren.
Bitte verwende den Quelltext in diesem Sinne: lesen, anpassen, verwenden, weitergeben.