C online - IDE, editor, compilatore, interprete

RSS

Scrivi, compila ed esegui programmi C online con un vero compilatore Clang che funziona nel tuo browser. Supporta stdin, avvisi e la libreria standard C.

C17 (Clang 21, WebAssembly) · Funziona nel tuo browser, quindi il tuo codice non raggiunge mai i nostri server.
main.cC
Output

            
Input (stdin), letto da scanf / std::cin / getline
Ctrl/⌘ + Enter per eseguire

Funzionalità del compilatore C online (IDE, editor e interprete)

Scrivi, esegui e testa codice C online gratis. Questa pagina è al tempo stesso IDE C online, editor di codice, compilatore e interprete: scrivi il codice, premi Esegui e vedi subito l'output. Tutto funziona nel tuo browser, senza nulla da installare e senza creare un account.

  • Esecuzione immediata: C17 (Clang 21, WebAssembly), con output in meno di un secondo dopo il primo caricamento.
  • Editor di codice: evidenziazione della sintassi, numeri di riga, corrispondenza e chiusura automatica delle parentesi.
  • Input del programma (stdin): digita l'input che il programma legge prima di eseguirlo.
  • Errori chiari: messaggi di errore e avvisi compaiono nel pannello di output, come sul tuo computer.
  • Schermo intero: Ctrl/⌘ + Shift + F, dimensione del carattere regolabile, layout affiancato o impilato e pannelli ridimensionabili.
  • Salvataggio automatico: il tuo codice resta nel browser; scaricalo come main.c o copialo con un clic.
  • Sperimenta in sicurezza: un limite di tempo e un pulsante Interrompi fermano i cicli infiniti.
  • Privato: il runtime C funziona sul tuo dispositivo, quindi il codice non viene mai caricato.
  • Modalità scura e scorciatoie da tastiera: Ctrl/⌘ + Enter esegue il codice.
  • Gratis: nessuna registrazione, nessun limite di utilizzo.

Impara altri linguaggi di programmazione

Come usare il compilatore C online

  1. Scrivi o incolla un programma C con una funzione main nell'editor. Ripristina esempio riporta il programma iniziale.
  2. Se il programma legge l'input con scanf, getchar o fgets, digitalo nella casella Input (stdin) sotto l'output prima di eseguirlo.
  3. Premi Esegui o usa Ctrl + Invio (⌘ + Invio su Mac). Il codice viene prima compilato e poi eseguito, ed entrambi i passaggi riportano i risultati nel pannello Output.
  4. Scegli un limite di tempo di 5, 15 o 60 secondi. Un ciclo infinito viene fermato quando si raggiunge il limite, e Interrompi termina subito un'esecuzione.

La prima esecuzione scarica il compilatore, circa 30 MB. Il browser lo mette in cache, e da quel momento in poi un programma tipico si compila in molto meno di un secondo. Usa Copia o main.c per salvare il file sorgente, A− e A+ per cambiare la dimensione del testo, il pulsante del layout per mettere editor e output affiancati o uno sopra l'altro, e Schermo intero (Ctrl/⌘ + Maiusc + F, Esc per uscire) per avere più spazio.

Compilazione ed esecuzione avvengono entrambe dentro il tuo browser. Il tuo codice non viene mai inviato a un server. L'editor conserva il tuo ultimo programma nella memoria locale del browser, e in nessun altro posto.

Come funziona e cosa è supportato

È un vero compilatore, non un interprete che imita il C. La pagina esegue Clang/LLVM 21, a sua volta compilato in WebAssembly dal progetto YoWASP. Clang trasforma main.c in un programma WebAssembly (WASI), che poi il browser esegue. Le opzioni del compilatore sono:

clang main.c -std=c17 -O2 -Wall -lm -o main.wasm
  • C17 con ottimizzazione (-O2) e gli avvisi comuni (-Wall) attivati.
  • La libreria standard del C di wasi-libc: stdio.h, stdlib.h, string.h, ctype.h, stdint.h, time.h e altre. La libreria matematica è collegata, quindi sqrt, pow e sin di math.h funzionano senza dover aggiungere -lm.
  • Diagnostica esatta: errori e avvisi vengono mostrati così come li stampa Clang, con le posizioni main.c:line:column.
  • Codici di uscita: se main restituisce un valore diverso da 0, l'output termina con Processo terminato con codice N.

Limiti di una sandbox nel browser:

  • Niente thread. pthread.h non è disponibile.
  • Niente socket né accesso alla rete, e niente fork o exec.
  • Nessun vero file system. Non puoi aprire file sul tuo computer, quindi usa lo stdin o dati inseriti nel sorgente.
  • Nessuna libreria grafica o GUI come SDL, OpenGL o conio.h/graphics.h. L'output è testo semplice.

Errori comuni in C che il compilatore ti aiuta a individuare

Controlla cosa restituisce scanf. Restituisce il numero di valori letti, non il valore stesso. Se la casella stdin è vuota o contiene testo dove ci si aspetta un numero, la variabile mantiene il valore che aveva prima, che può essere un valore casuale. Il programma iniziale mostra lo schema sicuro:

int n;
if (scanf("%d", &n) != 1) {
    fprintf(stderr, "expected a number\n");
    return 1;               /* riportato come codice di uscita 1 */
}

Abbina gli specificatori di formato di printf ai loro tipi. Usa %d per int, %ld per long, %lld per long long, %zu per size_t, %f per double e %c per un carattere. Con -Wall, Clang avvisa in caso di discrepanza, ad esempio se stampi un double con %d, quindi leggi gli avvisi anche quando il programma funziona.

Attenzione all'overflow degli interi. Un int a 32 bit si ferma a 2.147.483.647, e l'overflow con segno è un comportamento indefinito in C. Con -O2 l'ottimizzatore può presumere che non avvenga mai, quindi un ciclo che va in overflow può comportarsi in modo strano invece di ripartire semplicemente dal valore minimo. Usa long long (o int64_t di stdint.h) per fattoriali, grandi somme e prodotti.

long long f = 1;
for (int i = 2; i <= 20; i++) f *= i;
printf("20! = %lld\n", f);   /* 2432902008176640000 */
Suggerimento: un messaggio su una dichiarazione implicita di una funzione di solito indica un #include mancante, per esempio stdlib.h per malloc o string.h per strlen.

Domande frequenti

Quale compilatore e quale standard C usa?

Clang 21 (LLVM) in modalità C17, con -O2 -Wall. La maggior parte del codice scritto per GCC si compila senza modifiche, purché rispetti il C standard ed eviti header specifici di una piattaforma.

Il mio codice viene caricato da qualche parte?

No. Il compilatore stesso gira nel tuo browser, quindi il codice sorgente, il programma compilato e il suo output restano tutti sul tuo dispositivo.

Come passo l'input al mio programma?

Digitalo nella casella stdin prima di premere Esegui. I valori possono essere separati da spazi o da nuove righe, proprio come quando li digiti in un terminale. Quando l'input finisce, scanf restituisce EOF.

Perché il mio programma si ferma con un messaggio di limite di tempo?

È rimasto in esecuzione più a lungo del limite scelto, il che di solito indica un ciclo che non finisce mai. Controlla la condizione del ciclo, oppure scegli 60 s per calcoli davvero lunghi.

Posso compilare C++ qui?

Usa il compilatore C++ online, che esegue lo stesso Clang in modalità C++20. Per altri linguaggi, guarda tutti i compilatori online.

Aggiornato

Copiato negli appunti