C online - IDE, editor, compilador, interpretador

RSS

Escreva, compile e execute programas em C online com um compilador Clang real que roda dentro do seu navegador. Suporta stdin, avisos e a biblioteca padrão do C.

C17 (Clang 21, WebAssembly) · Roda no seu navegador, então seu código nunca chega aos nossos servidores.
main.cC
Saída

            
Entrada (stdin), lida por scanf / std::cin / getline
Ctrl/⌘ + Enter para executar

Recursos do compilador C online (IDE, editor & interpretador)

Escreva, execute e teste código C online de graça. Esta página funciona como IDE, editor de código, compilador e interpretador C online, tudo em um: digite seu código, clique em Executar e veja a saída na hora. Tudo roda no seu navegador, sem nada para instalar e sem conta para criar.

  • Execute código na hora: C17 (Clang 21, WebAssembly), com saída em menos de um segundo após o primeiro carregamento.
  • Editor de código: realce de sintaxe, números de linha, correspondência de colchetes e fechamento automático de colchetes.
  • Entrada do programa (stdin): digite a entrada que seu programa lê antes de executá-lo.
  • Erros claros: mensagens de erro e avisos aparecem no painel de saída, como apareceriam no seu próprio computador.
  • Tela cheia: Ctrl/⌘ + Shift + F, tamanho de fonte ajustável, layout lado a lado ou empilhado e painéis redimensionáveis.
  • Salvamento automático: seu código fica guardado no seu navegador; baixe-o como main.c ou copie-o com um clique.
  • Seguro para experimentar: um limite de tempo e um botão Parar encerram loops infinitos.
  • Privado: o runtime C roda no seu dispositivo, então seu código nunca é enviado.
  • Modo escuro e atalhos de teclado: Ctrl/⌘ + Enter executa o código.
  • Grátis: sem cadastro, sem limites de uso.

Aprenda outras linguagens de programação

Como usar o compilador C online

  1. Escreva ou cole um programa em C com uma função main no editor. Restaurar exemplo traz de volta o programa inicial.
  2. Se o programa lê entrada com scanf, getchar ou fgets, digite-a na caixa Entrada (stdin), abaixo da saída, antes de executar.
  3. Pressione Executar ou use Ctrl + Enter (⌘ + Enter no Mac). O código é compilado primeiro e depois executado, e as duas etapas aparecem no painel Saída.
  4. Escolha um limite de tempo de 5, 15 ou 60 segundos. Um loop infinito é interrompido quando o limite é atingido, e Parar encerra a execução na hora.

A primeira execução baixa o compilador, cerca de 30 MB. Seu navegador o guarda em cache e, depois disso, um programa típico compila em bem menos de um segundo. Use Copiar ou main.c para salvar seu arquivo-fonte, A− e A+ para mudar o tamanho do texto, o botão de layout para colocar o editor e a saída lado a lado ou empilhados, e Tela cheia (Ctrl/⌘ + Shift + F, Esc para sair) para ter mais espaço.

A compilação e a execução acontecem dentro do seu navegador. Seu código nunca é enviado a um servidor. O editor guarda seu último programa no armazenamento local do navegador, e em nenhum outro lugar.

Como funciona e o que é suportado

Este é um compilador de verdade, não um interpretador que imita C. A página roda o Clang/LLVM 21, ele próprio compilado para WebAssembly pelo projeto YoWASP. O Clang transforma main.c num programa WebAssembly (WASI), que o seu navegador então executa. As flags do compilador são:

clang main.c -std=c17 -O2 -Wall -lm -o main.wasm
  • C17 com otimização (-O2) e os avisos comuns (-Wall) ativados.
  • A biblioteca padrão do C da wasi-libc: stdio.h, stdlib.h, string.h, ctype.h, stdint.h, time.h e mais. A biblioteca matemática já vem vinculada, então sqrt, pow e sin de math.h funcionam sem você precisar adicionar -lm.
  • Diagnósticos exatos: erros e avisos aparecem como o Clang os imprime, com posições main.c:linha:coluna.
  • Códigos de saída: se main retornar um valor diferente de 0, a saída termina com O processo terminou com o código N.

Limitações de uma sandbox no navegador:

  • Sem threads. pthread.h não está disponível.
  • Sem sockets nem acesso à rede, e sem fork ou exec.
  • Sem sistema de arquivos real. Não é possível abrir arquivos do seu computador, então use o stdin ou dados no próprio código-fonte.
  • Sem bibliotecas gráficas ou de interface, como SDL, OpenGL ou conio.h/graphics.h. A saída é texto simples.

Erros comuns em C que o compilador ajuda a encontrar

Verifique o que o scanf retorna. Ele retorna a quantidade de valores lidos, não o valor em si. Se a caixa de stdin estiver vazia ou tiver texto onde se espera um número, a variável mantém o valor que tinha antes, que pode ser lixo. O programa inicial mostra o padrão seguro:

int n;
if (scanf("%d", &n) != 1) {
    fprintf(stderr, "expected a number\n");
    return 1;               /* informado como código de saída 1 */
}

Combine os especificadores de formato do printf com os tipos. Use %d para int, %ld para long, %lld para long long, %zu para size_t, %f para double e %c para um caractere. Com -Wall, o Clang avisa sobre uma incompatibilidade, como imprimir um double com %d, então leia os avisos mesmo quando o programa roda.

Cuidado com o overflow de inteiros. Um int de 32 bits vai até 2.147.483.647, e o overflow de inteiros com sinal é comportamento indefinido em C. Com -O2, o otimizador pode supor que isso nunca acontece, então um loop com overflow pode se comportar de forma estranha em vez de simplesmente dar a volta. Use long long (ou int64_t de stdint.h) para fatoriais, somas e produtos grandes.

long long f = 1;
for (int i = 2; i <= 20; i++) f *= i;
printf("20! = %lld\n", f);   /* 2432902008176640000 */
Dica: uma mensagem sobre declaração implícita de função geralmente significa que falta um #include, por exemplo stdlib.h para malloc ou string.h para strlen.

Perguntas frequentes

Qual compilador e qual padrão de C são usados?

Clang 21 (LLVM) no modo C17, com -O2 -Wall. A maior parte do código escrito para GCC compila sem alterações, desde que siga o C padrão e evite cabeçalhos específicos de plataforma.

Meu código é enviado para algum lugar?

Não. O próprio compilador roda no seu navegador, então o código-fonte, o programa compilado e a saída ficam todos no seu dispositivo.

Como passar dados de entrada para o meu programa?

Digite-a na caixa de stdin antes de pressionar Executar. Os valores podem ser separados por espaços ou quebras de linha, como quando você os digita num terminal. Quando a entrada acaba, scanf retorna EOF.

Por que meu programa para com uma mensagem de limite de tempo?

Ele rodou por mais tempo que o limite escolhido, o que geralmente indica um loop que nunca termina. Verifique a condição do loop ou escolha 60 s para cálculos realmente longos.

Posso compilar C++ aqui?

Use o compilador C++ online, que roda o mesmo Clang no modo C++20. Para outras linguagens, veja todos os compiladores online.

Atualizado

Copiado para a área de transferência