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.
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.
Diese Seite ist die Uebersicht zum Frontend. Die verlinkten Einzelseiten enthalten Syntax, getestete Beispiele, Status und Grenzen fuer die jeweiligen Befehle oder Sprachkonstrukte.
#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;
}
| Format | Unterstützung |
|---|---|
%d, %i | Vorzeichenbehaftete Ganzzahl |
%u | Ganzzahl ohne Vorzeichen |
%x, %X | Hexadezimal |
%o | Oktal |
%c | Charakter |
%s | Zeichenfolge |
%% | Wörtlicher Prozentsatz |
call r/m64über x64-Backendlong 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;
}
#include <stdlib.h>
int main(void) {
int* p = (int*)malloc(sizeof(int));
if (p) { *p = 42; free(p); }
return 0;
}
double f(double a, double b) {
return a * 2.0 + b / 4.0;
}
#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
26 Kopfbälle beicore/include/c17/. Einschließen mit-I:
PBXB64 -I core/include/c17 program.c -o program.exe
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 }
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.
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.