Startseite › Sprachübergreifende Referenz › Allgemeine Referenz Hilfe zum PBXB64-Compiler

PBXB64 - C-Sprache (V10)

PBXB64 unterstützt eine wachsende C17-Untergruppe, die über die einheitliche IR mit B64/BASIC/PILOT interoperabel ist. V10 fügt printf/varargs, indirekte Funktionszeiger und Float-Arithmetik hinzu.

Kategorie: Allgemeine Referenz

Beschreibung

PBXB64 unterstützt eine wachsende C17-Untergruppe, die über die einheitliche IR mit B64/BASIC/PILOT interoperabel ist. V10 fügt printf/varargs, indirekte Funktionszeiger und Float-Arithmetik hinzu.

Referenzseiten

Diese Seite ist die Uebersicht zum Frontend. Die verlinkten Einzelseiten enthalten Syntax, getestete Beispiele, Status und Grenzen fuer die jeweiligen Befehle oder Sprachkonstrukte.

printf / Varargs (V10)

#include <stdio.h>

Bootstrap printf mit String-Literal-Format:

#include <stdio.h>

int main(void) {
    int n = 42;
    printf("V10 answer=%d hex=%x str=%s\n", n, n, "ok");
    return 0;
}
FormatUnterstützung
%d, %iVorzeichenbehaftete Ganzzahl
%uGanzzahl ohne Vorzeichen
%x, %XHexadezimal
%oOktal
%cCharakter
%sZeichenfolge
%%Wörtlicher Prozentsatz

Indirekte Funktionszeiger (V10)

call r/m64über x64-Backend
long long add(long long a, long long b) { return a + b; }
long long sub(long long a, long long b) { return a - b; }

int main(void) {
    long long (*fp)(long long, long long);
    int res = 0;
    fp = &add
    res = (int)fp(20, 22);
    fp = ⊂
    return res + (int)fp(50, 8) - 84;
}

Laufzeit: malloc / kostenlos (V10)

#include <stdlib.h>

int main(void) {
    int* p = (int*)malloc(sizeof(int));
    if (p) { *p = 42; free(p); }
    return 0;
}

Float-Arithmetik (V10)

Nur Kompilierungspfad.Float/Double-Arithmetik kompiliert und senkt über die IR.
double f(double a, double b) {
    return a * 2.0 + b / 4.0;
}

Präprozessor (V9/V10)

#define MAX 100
#if MAX > 50
    #define MODE 1
#endif

#ifdef __STDC__
    int ver = __STDC_VERSION__;  // 201710L
#endif

_Pragma("GCC diagnostic ignored")  // stripped safely
int line = __LINE__;                // integer
char* file = __FILE__;              // string literal

C17-Header

26 Kopfbälle beicore/include/c17/. Einschließen mit-I:

PBXB64 -I core/include/c17 program.c -o program.exe

Kontrollfluss

switch (x) { case 1: break; case 2: case 3: break; default: break; }
goto label; label: return 0;
return (x > 0) ? 1 : -1;
for (int i = 0; i < 10; i++, j += 2) { body }
if (x) { block } else { block }

PBXB64-Prüfung

Diese Referenzseite soll durch ein fokussiertes Compile- oder Laufzeitbeispiel belegt sein. Das Beispiel soll Eingaben, erwartete Ausgabe oder Exit-Code und erforderliche Windows-Ressourcen oder Include-Dateien nennen.

Übersichtshinweise

Allgemeine Übersichtsseiten sollten trotzdem sagen, welche Familie gemeint ist, welche konkreten Befehlsseiten die Implementierung tragen und welche Formen nur der Navigation dienen. So bleibt die Seite detailliert genug, ohne so zu tun, als wäre sie eine vollständige Befehlsreferenz.

Zurück zum Befehlsindex