Startseite › Sprach-Frontends › C Frontend › Übersicht Hilfe zum PBXB64-Compiler

C Strukturen und Unions

Diese Hub-Seite verweist auf einzelne C-Frontend-Seiten fuer implementierte, getestete Konstrukte.

Kategorie: Übersicht

Syntax

struct Point {
    int x;
    int y;
};
struct Point p = { .x = 1, .y = 2 };
printf("%d,%d\n", p.x, p.y);

Beschreibung

Diese Hub-Seite verweist auf einzelne C-Frontend-Seiten fuer implementierte, getestete Konstrukte.

Zweck

Die Seite ist bewusst ein Ueberblickskapitel. Details, Syntax, Grenzen und Validierungsbelege stehen auf den darunterliegenden Einzelseiten, damit nicht mehrere Befehle auf einer einzigen Referenzseite vermischt werden.

ABI und Zielplattform

PBXB64s C-Frontend zielt auf eine getestete C17/C23-Teilmenge fuer Windows x64. Benutzerfunktionen und externe Aufrufe werden fuer die Windows-x64-ABI gesenkt: Integer- und Zeigerargumente verwenden RCX, RDX, R8 und R9; Floating-Point-Argumente verwenden XMM0 bis XMM3; weitere Argumente liegen auf dem Stack. Diese ABI-Notiz ist fuer C/PB/ASM-Mischprogramme wichtig.

Portabilitaet

Portabilitaet: Die Hilfeseiten dokumentieren PBXB64s natives Windows-Ziel, nicht einen POSIX-C-Compiler. Vermeide Annahmen ueber Unix-Header, Hostprozessverhalten oder implementation-defined Groessen, sofern die jeweilige Einzelseite sie nicht ausdruecklich belegt.

Einzelseiten

Pruefung

Die C-Seiten verweisen auf konkrete Beispiele oder Validierungstests. Neue C-Frontend-Behauptungen sollen erst nach einem fokussierten compile/link/run-Beleg in diese Referenz aufgenommen werden.

Beginne mit dieser Uebersicht, wenn du die passende Sprachform suchst, und wechsle dann auf die Einzelseite. Dort stehen die getestete Syntax, der begrenzte PBXB64-Umfang, bekannte Einschraenkungen und der konkrete Datei- oder Matrixbeleg.

Ein guter C-Beleg ist eine kleine, eigenstaendige Quelldatei mit Exitcode 0 fuer Erfolg, klarer Fehlerrueckgabe und nur den Headern, die das gezeigte Feature wirklich benoetigt.

← Back

String-Prüfung

String-Seiten sollen angeben, ob Daten dynamisch, festlängig, ASCIIZ, Unicode, UTF-8, ANSI oder rohe Bytes sind. Beispiele sollen leeren Text, nicht leeren Text und bei Kodierungsfragen mindestens ein Zeichen außerhalb einfacher A-Z-Eingaben enthalten.

Speicher und Kodierung

Dokumentieren Sie Besitz, Längeneinheiten, Terminatoren und Konvertierungsverlust. Bei x64-Interop sind String-Datenzeiger von Deskriptoren zu unterscheiden; 32-Bit-Zeigergrößen dürfen nicht vorausgesetzt werden.

Fehlerfälle

Nennen Sie Trunkierung, ungültige Kodierung, eingebettete NUL-Zeichen oder zu kleine Puffer, wenn der Befehl solche Fälle treffen kann.

Beispiel

#include <stdio.h>
struct Rect { int x, y, w, h; };
int main(void) {
    struct Rect r = {0, 0, 10, 20};
    printf("%d\n", r.w * r.h);
    return 0;
}

Siehe auch