Como reformatar código C no editor

Cole um arquivo ou trecho de C no editor e acione o botão: a ferramenta quebra as linhas depois de chaves e pontos e vírgulas, indenta o resultado com tabulações e mostra tudo destacado no painel abaixo.

É uma passada de texto, não um compilador. Strings, comentários e linhas de pré-processador atravessam sem alteração, e o editor mantém o texto original para você comparar os dois.

  1. Cole ou digite o código C no editor; o exemplo inicial é um programa mínimo que pode ser sobrescrito.
  2. Pressione Formatar código C. O resultado aparece no painel destacado abaixo.
  3. Se você mudar a entrada depois, o resultado antigo fica esmaecido e um aviso pede para rodar de novo, então um layout desatualizado nunca aparece como atual.
  4. Copiar leva o texto formatado do painel para a área de transferência; Limpar esvazia o editor e o resultado.
  5. Em saídas muito grandes o painel deixa de colorir a sintaxe e mostra texto simples, para não travar a aba.

O que o formatador reescreve e o que ele deixa intacto

O que passa intacto

Medido na página: char *p="a;b}"; mantém o ponto e vírgula e a chave dentro da string, o comentário /* block ; { } */ conserva a pontuação, e uma macro com continuação de linha (#define LONG(a) do { \ ...) volta caractere por caractere, incluindo #define X {1,2} em uma única linha.

É exatamente esse o objetivo: só o espaço em branco se move. Quando um trecho depende do espaçamento exato dentro de macros ou das linhas de continuação, o formatador prefere deixar essas linhas como estão a arriscar mudar o programa.

Onde o layout é aproximado

A formatação é feita por varredura de texto, não por gramática, então linhas compactas são abertas por regras. struct S{int a;char *b;};typedef struct S S; vira quatro linhas, mas o trecho final };typedef struct S S; fica em uma só: as expressões não são respaçadas.

A ferramenta não compila, não analisa e não valida nada. Ponto e vírgula ausente, chaves desbalanceadas ou sintaxe inválida geram o melhor layout possível em vez de um erro; use a saída como rascunho legível e depois passe pelo compilador ou linter.

Arquivos grandes

A formatação roda inteiramente na página: uma amostra de 64 KB (4.000 instruções, cerca de 82 KB de saída) volta em menos de um segundo no Chrome, e a execução não dispara nenhuma requisição de rede, ou seja, funciona sem conexão.

Acima de cerca de 120.000 caracteres de saída o painel passa a texto simples, sem cores, para não parar a aba. Para arquivos desse tamanho, dividir a entrada ou usar um formatador local continua sendo mais confortável.

Ferramentas recentes: