C-Code formatieren und einrücken

Die Formatierung nutzt allgemeine C-Stilregeln, keine Compilerprüfung. Kontrollieren Sie kompakte Snippets und testen Sie das Ergebnis mit Ihrer Toolchain.

Läuft lokal in deinem Browser

C-Quelltext im Editor neu formatieren

C-Quelltext in den Editor einfügen und die Schaltfläche drücken: das Werkzeug bricht die Zeilen nach geschweiften Klammern und Semikolons neu um, rückt das Ergebnis mit Tabulatoren ein und zeigt es hervorgehoben im Feld darunter.

Es ist ein Textlauf, kein Compiler. Zeichenketten, Kommentare und Präprozessorzeilen bleiben unangetastet, und der Editor behält den ursprünglichen Text, sodass beide Fassungen verglichen werden können.

  1. C-Code in den Editor einfügen oder eintippen; das Beispiel ist ein minimales Programm und kann überschrieben werden.
  2. C-Code formatieren drücken — das Ergebnis erscheint im hervorgehobenen Feld darunter.
  3. Wird die Eingabe danach geändert, wird das alte Ergebnis blasser und ein Hinweis bittet um einen erneuten Lauf; ein veraltetes Layout wird so nie als aktuell ausgegeben.
  4. Kopieren übernimmt den formatierten Text aus dem Feld; Leeren räumt Editor und Ergebnis.
  5. Bei sehr großen Ausgaben schaltet das Feld auf reinen Text ohne Hervorhebung um, damit der Tab nicht blockiert.

Was der Formatierer umschreibt und was er unberührt lässt

Was unverändert bleibt

Auf der Seite nachgemessen: char *p="a;b}"; behält Semikolon und Klammer innerhalb der Zeichenkette, /* block ; { } */ behält seine Kommentarzeichen, und ein Makro mit Zeilenfortsetzung (#define LONG(a) do { \ ...) kommt Zeichen für Zeichen zurück, einschließlich #define X {1,2} in einer einzigen Zeile.

Genau das ist der Zweck: bewegt wird nur der Weißraum. Wenn ein Schnipsel auf exakte Abstände in Makros oder auf Fortsetzungszeilen angewiesen ist, lässt der Formatierer diese Zeilen lieber stehen, als das Programm zu verändern.

Wo das Layout grob bleibt

Formatiert wird über Textsuche statt über eine Grammatik, deshalb werden kompakte Einzeiler nach Regeln aufgebrochen. Aus struct S{int a;char *b;};typedef struct S S; werden vier Zeilen, aber };typedef struct S S; bleibt am Stück: Ausdrücke werden nicht neu gesetzt.

Es wird weder kompiliert noch geparst oder geprüft. Fehlende Semikolons, unbalancierte Klammern oder ungültige Syntax liefern ein bestmögliches Layout statt einer Fehlermeldung. Die Ausgabe ist also ein lesbarer Entwurf und gehört anschließend durch Compiler oder Linter.

Große Dateien

Formatiert wird ausschließlich in der Seite: eine 64-KB-Stichprobe (4.000 Anweisungen, rund 82 KB Ausgabe) kehrt in Chrome in unter einer Sekunde zurück, und der Lauf erzeugt keine einzige Netzwerkanfrage — er braucht also keine Verbindung.

Ab etwa 120.000 Zeichen Ausgabe wechselt das Feld auf reinen Text ohne Farbe, damit lange Dateien die Registerkarte nicht anhalten. Für solche Dateien bleibt das Aufteilen der Eingabe oder ein lokaler Formatierer der bequemere Weg.

Zuletzt verwendet: