C é compilado: primeiro o compilador transforma o .c num executável, depois você
roda o executável.
Testar sem instalar nada
No Compiler Explorer, escolha C na lista de linguagens, cole o código e abra Add new... → Execution Only para ver a saída do programa.
Instalar
Linux (Debian/Ubuntu)
sudo apt install build-essential
gcc --version
O build-essential instala o GCC (gcc para C e g++ para C++). A versão do
apt pode não ser a mais recente; para uma mais nova, veja como
compilar o GCC a partir do código-fonte.
Windows
Instale o MSYS2 e, no terminal MSYS2 UCRT64, rode:
pacman -S mingw-w64-ucrt-x86_64-gcc
Compile e rode no mesmo terminal MSYS2 UCRT64 (ou adicione C:\msys64\ucrt64\bin
ao PATH do Windows para usar no PowerShell). Se os acentos saírem trocados no
terminal do Windows, o problema é a codificação do terminal, não o programa.
Executar um arquivo
Exemplo básico: Olá, mundo!
Salve como hello.c. Este programa mostra uma mensagem no terminal.
#include <stdio.h>
int main(void) {
if (puts("Olá, mundo!") == EOF) {
return 1;
}
return 0;
}
Na pasta do arquivo, execute no Linux ou no terminal MSYS2 UCRT64 do Windows:
gcc -std=c23 -Wall -Wextra -Wpedantic hello.c -o hello
./hello
No PowerShell, compile com gcc -std=c23 -Wall -Wextra -Wpedantic hello.c -o hello.exe e execute .\hello.exe.
Saída esperada:
Olá, mundo!
Converter Celsius em Fahrenheit
Salve o programa como main.c. O programa lê Celsius e aplica F = C × 1,8 + 32. Use ponto nos decimais.
scanf lê o dado, printf mostra o resultado e isfinite verifica se o número
é finito. Digite apenas um número pequeno: essa leitura introdutória não valida
toda a linha.
#include <math.h>
#include <stdio.h>
int main(void) {
double celsius;
printf("Temperatura em Celsius (ex.: 25.5):\n");
if (scanf("%lf", &celsius) != 1 || !isfinite(celsius) || celsius < -273.15) {
fprintf(stderr, "Entrada inválida: informe uma temperatura a partir de -273.15.\n");
return 1;
}
const double fahrenheit = celsius * 1.8 + 32;
if (!isfinite(fahrenheit)) {
fprintf(stderr, "Temperatura grande demais para calcular.\n");
return 1;
}
printf("Fahrenheit: %.2f °F\n", fahrenheit);
return 0;
}
Na pasta do arquivo, execute:
gcc -std=c23 -Wall -Wextra -Wpedantic main.c -o main
./main
Uma interação no terminal será:
Temperatura em Celsius (ex.: 25.5):
25
Fahrenheit: 77.00 °F
As linhas com os valores das respostas são digitadas por você. Pressione Enter após cada resposta. As demais linhas são a saída do programa.
Quando o exemplo é só um trecho
Coloque as linhas dentro de int main(void) { ... }, inclua os #include que ele
usar (<stdio.h> para printf, <stdlib.h> para malloc, <string.h> para
strlen) e deixe as outras funções acima do main.
Erros comuns
implicit declaration of function 'printf': faltou o#include <stdio.h>.undefined reference to 'sqrt': funções de<math.h>pedem-lmno fim do comando (gcc main.c -o main -lm).unrecognized command-line option '-std=c23': o GCC é anterior ao 14; use-std=c17ou atualize o compilador.- Esqueceu o
\nnoprintf: a saída pode aparecer colada no prompt do terminal.