C Editores e IDEs

Código C é texto puro: dá para escrevê-lo até no Bloco de Notas. Mas um bom editor de código faz a diferença entre sofrer e aprender: ele pinta cada parte do código de uma cor, marca o erro enquanto você digita, completa nomes e compila com uma tecla. Nesta aula você vai conhecer os editores e IDEs mais usados para C, configurar o VS Code para o C23, compilar por dentro dele e aprender os cuidados com o arquivo que evitam muita dor de cabeça.

Você vai aprender
  • A diferença entre editor de texto, editor de código e IDE, e por que nenhum deles é o compilador.
  • Configurar o VS Code: as extensões C/C++ (da Microsoft) e clangd, e o padrão C23.
  • Compilar pelo terminal integrado e com uma tarefa (tasks.json) ligada ao atalho Ctrl+Shift+B.
  • O que oferecem o CLion, o Visual Studio, o Code::Blocks e o Vim, e qual escolher.
  • Os cuidados com o arquivo: a extensão .c, o UTF-8 e salvar antes de compilar.

Esta aula não tem capturas de tela: os menus mudam a cada versão, e o guia descreve o caminho pelo nome dos botões. As saídas de terminal foram produzidas na máquina fictícia da Ana, com o gcc 15.2, na pasta ~/c.


A ideia: caneta, caderno e estojo completo

TipoComparaçãoO que fazExemplos
Editor de textoUma caneta e uma folhaSó escreve e salva texto.Bloco de Notas, gedit, nano
Editor de códigoUm caderno com régua, marca-texto e corretorCores por tipo de palavra, números das linhas, completar nomes, marcar erros; com extensões, compila e depura.VS Code, Vim, Neovim, Geany, Sublime Text
IDE (Integrated Development Environment, "ambiente de desenvolvimento integrado")O estojo completoTudo do editor de código, mais projetos, compilação, depurador e ferramentas de análise, já configurados e ligados entre si.CLion, Visual Studio, Code::Blocks
Nenhum deles é o compilador

O editor só ajuda a escrever. Quem transforma o código em programa continua sendo o gcc, o clang ou o cl da Microsoft, que você instalou na aula Instalar no Linux ou Instalar no Windows e macOS. Se o compilador não estiver instalado, o mais bonito dos editores não consegue gerar programa nenhum. A exceção são algumas IDEs (Visual Studio, Code::Blocks e CLion no Windows) que já trazem um compilador junto.


1. Por que um editor de código ajuda tanto

Veja um engano que todo iniciante comete: esquecer de fechar as aspas. A Ana escreveu "Olá, mundo!\n e o " do fim sumiu:

#include <stdio.h>

int main(void) {
    printf("Olá, mundo!\n);
    printf("Tchau!\n");
    return 0;
}

Num editor de código, o problema salta aos olhos antes mesmo de compilar: o texto entre aspas tem uma cor própria, e essa cor "vaza" até o fim da linha, ou as aspas da linha seguinte ficam com a cor trocada. O editor também sublinha o erro com uma ondinha vermelha. Sem essa ajuda, a Ana só descobre ao compilar, e o gcc responde com uma avalanche:

$ gcc -std=c23 -Wall -Wextra aspas.c -o aspas 2>&1 | wc -l
32                                                   « 32 linhas de mensagens!
$ gcc -std=c23 -Wall -Wextra aspas.c -o aspas 2>&1 | head -6
aspas.c: In function ‘main’:
aspas.c:4:12: warning: missing terminating " character
    4 |     printf("Olá, mundo!\n);
      |            ^
aspas.c:4:12: error: missing terminating " character   « a primeira mensagem diz tudo
    4 |     printf("Olá, mundo!\n);
2>&1
As mensagens do compilador saem por um "canal" separado da saída normal (o stderr, aula stdin, stdout e stderr). O 2>&1 junta os dois canais, para o próximo comando receber tudo.
| wc -l
O | (barra vertical, o "cano") entrega a saída para outro comando. O wc -l conta as linhas: 32.
| head -6
Mostra só as seis primeiras linhas.

A primeira mensagem já diz o problema: missing terminating " character, "falta o caractere " de fechamento", na linha 4, coluna 12. As outras linhas são consequência: sem as aspas fechadas, o gcc se perdeu e tentou entender o resto de todo jeito, reclamando de coisas que estão certas. Regra de ouro, que a aula Lendo Erros do Compilador detalha: leia e conserte a primeira mensagem, e compile de novo.

O editor do guia também pinta o código. Repare nas cores da linha 4 e no que o compilador dele, o Clang, responde: missing terminating '"' character e expected expression ("esperava uma expressão"):

Missão: rode e leia o erro. Depois feche as aspas no lugar certo (depois do \n, antes do )) e rode de novo: devem aparecer as duas linhas.

#include <stdio.h>

int main(void) {
    printf("Olá, mundo!\n);
    printf("Tchau!\n");
    return 0;
}
#include <stdio.h>

int main(void) {
    printf("Olá, mundo!\n");
    printf("Tchau!\n");
    return 0;
}

Além das cores, um editor de código:

  • numera as linhas, os mesmos números que as mensagens do compilador citam (aspas.c:4:12 é a linha 4, coluna 12);
  • faz o recuo sozinho: depois de um {, a próxima linha já começa mais para dentro;
  • fecha os pares: digitou (, ele põe o ); digitou ", ele põe o outro ";
  • completa nomes: digite pri e ele sugere printf;
  • marca erros e avisos enquanto você digita, antes de compilar.

2. VS Code

O Visual Studio Code (VS Code) é um editor de código gratuito da Microsoft, para Windows, Linux e macOS. Sozinho, ele só pinta o código; com as extensões certas, vira um ambiente completo para C. É o editor mais usado do mundo e o recomendado para seguir o guia. Não confunda com o Visual Studio (sem "Code"), a IDE pesada só para Windows (seção 3).

Instalando

  1. Baixe em code.visualstudio.com: no Ubuntu e no Debian, o arquivo .deb; no Fedora, o .rpm; no Windows e no macOS, o instalador.
  2. Instale como qualquer programa. No Ubuntu, dê dois cliques no .deb ou rode sudo apt install ./code_*.deb na pasta do download.
  3. Abra a pasta dos seus programas: no terminal, code ~/c; ou, no VS Code, Arquivo → Abrir Pasta. Trabalhe sempre com a pasta aberta, não com arquivos soltos: as configurações e as tarefas ficam guardadas na pasta.
  4. Crie um arquivo com Arquivo → Novo Arquivo e salve com um nome terminado em .c, como ola.c. Na hora, o VS Code reconhece a linguagem (o canto de baixo da janela passa a dizer C) e oferece instalar a extensão de C.

As extensões: C/C++ ou clangd

Abra a aba Extensões (o ícone de quadradinhos na barra da esquerda, ou Ctrl+Shift+X) e procure pelo nome. Há duas boas opções, e você deve usar uma delas. Apesar do nome "C/C++" e do "clang" no nome da outra, as duas servem para C:

C/C++ (da Microsoft)clangd (do projeto LLVM)
Identificadorms-vscode.cpptoolsllvm-vs-code-extensions.vscode-clangd
O que fazIntelliSense (completar, marcar erros, ir para a definição) e depuração com o gdbCompletar e marcar erros usando o próprio Clang: os erros sublinhados são os do compilador
Precisa instalar algo mais?Não (só o compilador)O programa clangd: sudo apt install clangd no Ubuntu; a extensão também oferece baixá-lo
Configurar o C23Configuração C_Cpp.default.cStandard = c23Um arquivo compile_flags.txt na pasta (veja abaixo)
Bom paraComeçar: funciona sem configurar quase nada, e traz o depuradorQuem quer avisos precisos e rápidos (são os mesmos do editor do guia, que também é Clang)

Pelo terminal, a instalação é um comando: code --install-extension ms-vscode.cpptools (ou o identificador do clangd). Se instalar as duas, a do clangd pergunta se pode desligar o IntelliSense da Microsoft: aceite, senão cada erro aparece duas vezes. Dá para manter a da Microsoft só para depurar.

Configurando o C23

Os dois "corretores" precisam saber que você usa o C23. Senão, analisam o código como se fosse de uma versão antiga e sublinham em vermelho coisas novas, como bool sem #include ou nullptr, mesmo o programa compilando (veja "Quando dá errado").

  • Na extensão C/C++: abra as configurações (Ctrl+,), procure C Standard e escolha c23 no item C_Cpp › Default: C Standard. (O item vizinho, Cpp Standard, é para C++: não precisa mexer.)
  • No clangd: crie na pasta do projeto um arquivo chamado compile_flags.txt com as opções de compilação, uma por linha:
-std=c23
-Wall
-Wextra

O clangd lê esse arquivo e passa a analisar o código com as mesmas opções do comando padrão do guia (aula Compilar com gcc). Em projetos com CMake, ele usa outro arquivo, gerado automaticamente (aula CMake).

Compilar pelo terminal integrado

O VS Code tem um terminal dentro dele: menu Terminal → Novo Terminal (ou Ctrl+'). Ele abre já na pasta do projeto. É o jeito mais simples e o que o guia recomenda no começo, porque você vê o comando e a saída completos, iguais aos das aulas:

$ gcc -std=c23 -Wall -Wextra ola.c -o ola
$ ./ola
Olá, mundo!

Quando há erro, segure Ctrl e clique no aspas.c:4:12 da mensagem: o VS Code abre o arquivo exatamente na linha e na coluna do problema.

Compilar com uma tecla: o tasks.json

Digitar o comando toda vez cansa. O VS Code permite gravar um comando como uma tarefa (task), num arquivo chamado tasks.json, dentro de uma pasta .vscode no projeto. Crie .vscode/tasks.json com este conteúdo:

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Compilar C23",
      "type": "shell",
      "command": "gcc",
      "args": [
        "-std=c23", "-Wall", "-Wextra", "-g",
        "${file}",
        "-o", "${fileDirname}/${fileBasenameNoExtension}"
      ],
      "problemMatcher": ["$gcc"],
      "group": { "kind": "build", "isDefault": true }
    }
  ]
}
LinhaO que faz
"version": "2.0.0"A versão do formato do arquivo. Sempre 2.0.0.
"label"O nome da tarefa, que aparece nos menus. Escolha o que quiser.
"type": "shell"Roda o comando num terminal, como se você o digitasse.
"command": "gcc"O programa. Troque por clang se for o seu caso.
"args"As opções, uma por item, entre aspas e separadas por vírgula. O -g guarda informações para o depurador (aula Depurar com gdb).
${file}Uma variável do VS Code: o arquivo aberto na aba ativa, com o caminho completo.
${fileDirname}/${fileBasenameNoExtension}A pasta desse arquivo + o nome dele sem a extensão. Para ola.c, o executável vira ola, na mesma pasta.
"problemMatcher": ["$gcc"]Ensina o VS Code a ler as mensagens do gcc: os erros aparecem na aba Problemas e sublinhados no código.
"group": { "kind": "build", "isDefault": true }Marca esta como a tarefa de compilação padrão, a do atalho Ctrl+Shift+B.

Agora, com o ola.c aberto, tecle Ctrl+Shift+B. O VS Code abre o terminal e executa o comando montado com as variáveis. Na máquina da Ana, ele fica assim (rodado à mão, o resultado é o mesmo):

$ gcc -std=c23 -Wall -Wextra -g /home/ana/c/ola.c -o /home/ana/c/ola
$ ./ola
Olá, mundo!

A tarefa compila; para rodar, use o terminal (./ola). A extensão C/C++ também tem um botão ▷ no canto da aba, que cria uma configuração própria na primeira vez (ela pergunta qual compilador usar). Ele funciona, mas a configuração que ele gera não tem -std=c23 nem -Wall -Wextra: se for usá-lo, acrescente essas opções na lista args do tasks.json que ele criar.

Cuidado com extensões que "rodam qualquer coisa"

Extensões como a Code Runner rodam o arquivo com um clique, mas usam um comando próprio. Para C, o comando dela é gcc ola.c -o ola: sem -std=c23 e, pior, sem avisos. Veja a diferença com um programa que tem uma variável esquecida:

$ gcc idade.c -o idade && ./idade                « o comando do Code Runner
Olá, Ana!                                         « nenhum aviso
$ gcc -std=c23 -Wall -Wextra idade.c -o idade     « o comando do guia
idade.c: In function ‘main’:
idade.c:4:9: warning: unused variable ‘idade’ [-Wunused-variable]
    4 |     int idade = 29;
      |         ^~~~~

Os avisos que o guia ensina a ler (aula Avisos) nunca aparecem. Prefira o terminal ou o tasks.json, em que você vê e controla o comando.


3. Outras opções

CLion

O CLion, da JetBrains, é uma IDE feita só para C e C++, para Windows, Linux e macOS. Desde 2025, é gratuito para uso não comercial (estudar, projetos pessoais). Ele organiza tudo com o CMake: ao criar um projeto, escolha C Executable e o padrão C23, e ele grava set(CMAKE_C_STANDARD 23) no arquivo CMakeLists.txt (aula CMake). Tem análise de código muito boa (baseada no clangd), refatoração (renomear uma variável em todo o projeto de uma vez) e depurador visual. No Windows, já vem com um compilador (MinGW). É a melhor escolha para quem quer uma IDE completa sem ficar preso ao Windows. Lembre-se de que o CMake não liga o -Wall -Wextra sozinho: a aula de CMake mostra como.

Visual Studio

O Visual Studio (a edição Community é gratuita) é a IDE da Microsoft, só para Windows. Vem com o compilador MSVC e um ótimo depurador visual. Mas o MSVC foi feito pensando em C++: o C23 ainda está chegando a ele aos poucos, e as mensagens de erro são bem diferentes das do gcc mostradas no guia. A instalação, e como criar um arquivo .c nele, estão em Instalar no Windows e macOS. Para seguir este guia, prefira o VS Code com o gcc.

Code::Blocks

O Code::Blocks é uma IDE gratuita, leve e simples, muito usada em escolas e faculdades. No Windows, baixe a versão do instalador com mingw no nome, que já traz o gcc. No Linux: sudo apt install codeblocks.

  1. Crie um projeto com File → New → Project → Console application e escolha C (não C++) quando ele perguntar a linguagem.
  2. Em Settings → Compiler → Compiler settings, na aba Other compiler options, escreva -std=c23 -Wall -Wextra.
  3. Compile e rode com F9.

Se o gcc que veio junto for antigo (até a versão 13), ele não conhece -std=c23: use -std=c2x, o nome antigo do C23 (aula Versões do C). A interface é mais antiga e o autocompletar é mais fraco, mas roda bem em computadores modestos. O Dev-C++, que muitas escolas ainda usam, é parecido, mas traz um gcc bem mais antigo, que não conhece boa parte do C23.

Vim e Neovim

O Vim e o Neovim são editores de terminal, rapidíssimos, que se usam só com o teclado. A curva de aprendizado é íngreme (o famoso "como eu saio do Vim?": tecle Esc e digite :q), mas quem aprende não larga. Dentro do Vim, dá para compilar e rodar sem sair do editor:

:w
:!gcc -std=c23 -Wall -Wextra % -o %:r
:!./%:r
:w
Salva o arquivo (write). Sem isso, o gcc compila a versão antiga, a que está no disco.
:!
Roda um comando do terminal sem sair do Vim.
%
O Vim troca pelo nome do arquivo aberto: ola.c.
%:r
O nome sem a extensão (root, "raiz"): ola.

O Neovim (e o Vim, com um plugin) conversa com o clangd e ganha autocompletar e erros sublinhados, como o VS Code. Para escrever rápido no terminal sem aprender o Vim, o nano também serve: ele mostra os atalhos no rodapé (Ctrl+O salva, Ctrl+X sai).

Qual escolher?

Se você…Use
está começando e quer seguir o guiaVS Code + extensão C/C++ (ou clangd) + terminal integrado
quer uma IDE completa, em qualquer sistemaCLion
programa só para Windows e já usa o compilador da MicrosoftVisual Studio
tem um computador modesto ou a escola pedeCode::Blocks (ou Geany, no Linux)
vive no terminal ou edita em servidoresVim/Neovim (ou nano, para o básico)
ainda não instalou nadaAs caixas Experimente do guia (aula O Editor do Guia)

A escolha do editor não é para sempre, e não muda nada no código: um ola.c escrito no Vim compila igual a um escrito no CLion.


4. Os cuidados com o arquivo

A extensão .c

Salve com a extensão .c. É ela que faz o editor ligar as cores e as ferramentas de C, e que faz o gcc tratar o arquivo como código C. Dois enganos comuns:

1. O Bloco de Notas do Windows acrescenta .txt e o arquivo vira ola.c.txt. O gcc não reconhece a extensão e entrega o arquivo para o ligador, que não entende nada:

$ gcc -std=c23 -Wall -Wextra ola.c.txt -o ola
/usr/bin/x86_64-linux-gnu-ld.bfd:ola.c.txt: file format not recognized; treating as linker script
/usr/bin/x86_64-linux-gnu-ld.bfd:ola.c.txt:3: syntax error
collect2: error: ld returned 1 exit status

"Formato de arquivo não reconhecido; tratando como script do ligador", e logo depois "erro de sintaxe" na linha 3. No Windows, ative Exibir → Extensões de nomes de arquivos no Explorador de Arquivos para ver o nome completo, e renomeie para ola.c.

2. Salvar como .cpp (a extensão do C++). O gcc passa a compilar o arquivo como C++, uma linguagem parecida, mas diferente. Este programa é C correto (new é um nome qualquer em C), e falha como .cpp, porque em C++ new é uma palavra reservada:

$ gcc -std=c23 -Wall -Wextra turma.c -o turma && ./turma
A turma tem 30 alunos.
$ cp turma.c turma.cpp
$ gcc -std=c23 -Wall -Wextra turma.cpp -o turma
cc1plus: warning: command-line option ‘-std=c23’ is valid for C/ObjC but not for C++
turma.cpp: In function ‘int main()’:
turma.cpp:4:9: error: expected unqualified-id before ‘new’
    4 |     int new = 30;
      |         ^~~
turma.cpp:5:43: error: expected type-specifier before ‘)’ token
    5 |     printf("A turma tem %d alunos.\n", new);
      |                                           ^

A primeira linha entrega o que aconteceu: cc1plus é o compilador de C++ do gcc, e ele avisa que "-std=c23 vale para C, mas não para C++". Se aparecer cc1plus ou int main() numa mensagem sua, confira a extensão do arquivo.

Codificação: UTF-8

Os acentos do guia ("Olá", "feijão") só funcionam direito se o arquivo for salvo em UTF-8, a codificação usada pelo Linux, pelo macOS e pela web. O VS Code, o CLion e o Vim usam UTF-8 por padrão; no VS Code, a codificação aparece na barra de status, no canto de baixo. A aula Acentos e UTF-8 explica o que acontece quando não é.

Salve antes de compilar

O compilador lê o arquivo do disco, não o que está na tela do editor. Se você mudou o código e não salvou, o gcc compila a versão anterior, e parece que "a mudança não funcionou". No VS Code, uma bolinha branca na aba indica arquivo não salvo. Dica: ative Arquivo → Salvamento Automático. (O editor do guia não tem esse problema: o Rodar sempre compila o que está na caixa.)


Quando dá errado

VS Code: #include errors detected. Please update your includePath.

O que significa: "erros de #include detectados; atualize o caminho de inclusão". A extensão C/C++ não achou o <stdio.h>, quase sempre porque não achou o compilador, que é quem traz esses arquivos. O código provavelmente compila no terminal; é só o IntelliSense que está perdido (ilustrativo: a mensagem exata muda com a versão da extensão).

Como consertar: confira se gcc --version funciona no terminal integrado do VS Code. No Windows com MSYS2, o problema costuma ser o PATH (veja Instalar no Windows e macOS); feche e abra o VS Code depois de mudá-lo. Depois, use o comando C/C++: Select IntelliSense Configuration (Ctrl+Shift+P) e escolha o seu gcc.

O editor sublinha o bool ou o nullptr em vermelho, mas o programa compila

O que significa: o corretor do editor está usando uma versão mais antiga do C que a do seu comando de compilação. É como se ele compilasse com -std=c17, em que bool, true e nullptr ainda não eram palavras da linguagem:

$ gcc -std=c23 -Wall -Wextra nulo.c -o nulo && ./nulo
Tudo certo.
$ gcc -std=c17 -Wall -Wextra nulo.c -o nulo
nulo.c: In function ‘main’:
nulo.c:4:5: error: unknown type name ‘bool’
    4 |     bool pronto = true;
      |     ^~~~
nulo.c:2:1: note: ‘bool’ is defined in header ‘<stdbool.h>’; this is probably fixable by adding ‘#include <stdbool.h>’
    1 | #include <stdio.h>
  +++ |+#include <stdbool.h>
    2 |
nulo.c:4:19: error: ‘true’ undeclared (first use in this function)
    4 |     bool pronto = true;
      |                   ^~~~
nulo.c:4:19: note: ‘true’ is defined in header ‘<stdbool.h>’; this is probably fixable by adding ‘#include <stdbool.h>’
nulo.c:4:19: note: each undeclared identifier is reported only once for each function it appears in
nulo.c:5:14: error: ‘nullptr’ undeclared (first use in this function)
    5 |     int *p = nullptr;
      |              ^~~~~~~

Quem manda é o compilador: se compilou com -std=c23, o código está certo.

Como consertar: configure o C23 no editor: C_Cpp.default.cStandard = c23 na extensão C/C++, ou o compile_flags.txt com -std=c23 no clangd.

Teclei Ctrl+Shift+B com o tasks.json aberto
$ gcc -std=c23 -Wall -Wextra -g .vscode/tasks.json -o .vscode/tasks
/usr/bin/x86_64-linux-gnu-ld.bfd:.vscode/tasks.json: file format not recognized; treating as linker script
/usr/bin/x86_64-linux-gnu-ld.bfd:.vscode/tasks.json:1: syntax error
collect2: error: ld returned 1 exit status

O que significa: o ${file} é o arquivo da aba ativa. Com o tasks.json na frente, a tarefa mandou o gcc compilar o próprio tasks.json. Como .json não é extensão de código, o gcc o entregou ao ligador, que disse: "formato de arquivo não reconhecido" e, em seguida, "erro de sintaxe" na linha 1. É o mesmo erro do ola.c.txt.

Como consertar: clique na aba do .c antes de teclar o atalho.

Aparece cc1plus ou In function ‘int main()’ na mensagem

O que significa: o arquivo está sendo compilado como C++: a extensão é .cpp (ou .cc, .cxx), ou o projeto da IDE foi criado como C++ (seção 4).

Como consertar: renomeie o arquivo para .c. No Code::Blocks e no CLion, crie o projeto escolhendo a linguagem C.

"Mudei o código e o programa continua igual"

O que significa: uma de duas coisas. Ou o arquivo não foi salvo (o compilador leu a versão antiga do disco), ou ele não foi compilado de novo (você rodou o executável antigo; veja Compilar com gcc).

Como consertar: salvar (Ctrl+S), compilar, rodar, sempre nessa ordem. No terminal, gcc … && ./programa compila e roda de uma vez.


Referência: atalhos do VS Code

Atalho (Windows/Linux)No macOSO que faz
Ctrl+SCmd+SSalvar
Ctrl+Shift+BCmd+Shift+BRodar a tarefa de compilação padrão
Ctrl+'Ctrl+'Abrir ou fechar o terminal integrado
Ctrl+Shift+PCmd+Shift+PPaleta de comandos: procurar qualquer comando pelo nome
Ctrl+Shift+XCmd+Shift+XExtensões
Ctrl+,Cmd+,Configurações
Ctrl+EspaçoCtrl+EspaçoSugestões de autocompletar
F12F12Ir para a definição do nome sob o cursor
Ctrl+/Cmd+/Comentar ou descomentar a linha (aula Comentários)
Shift+Alt+FShift+Option+FFormatar o documento (arrumar os espaços e o recuo)
F5F5Iniciar a depuração

Exercícios

1. Qual destas afirmações é verdadeira?

2. Num tasks.json, o que o VS Code coloca no lugar de ${file}?

3. O gcc mostrou 32 linhas de mensagens depois que a Ana esqueceu de fechar umas aspas. O que ela deve fazer?

4. A mensagem de erro da Ana começa com cc1plus: warning: command-line option ‘-std=c23’ is valid for C/ObjC but not for C++. Qual é o problema mais provável?

5. O arquivo do clangd

Qual é o nome do arquivo em que o clangd lê as opções de compilação, uma por linha?

6. Compilar dentro do Vim

Complete o comando do Vim que compila o arquivo aberto (%) gerando um executável com o nome sem extensão:

:!gcc -std=c23 -Wall -Wextra % -o

7. O C23 na extensão C/C++

Complete a configuração do VS Code que faz a extensão C/C++ analisar o código como C23:

C_Cpp.default.cStandard =

Missão final: o recuo que ajuda a ler

Missão: o programa abaixo funciona, mas foi escrito todo "colado" na margem, e fica difícil ver o que está dentro do main. Os editores de código fazem o recuo (os espaços no começo da linha) sozinhos. Arrume à mão: coloque 4 espaços antes de cada printf e do return 0; (no editor do guia, a tecla Tab insere os 4 espaços; com as linhas selecionadas, recua todas de uma vez). Depois rode: a saída não muda, mas o código fica muito mais fácil de ler.

#include <stdio.h>

int main(void) {
printf("Lista de compras:\n");
printf("- arroz\n");
printf("- feijão\n");
printf("- café\n");
return 0;
}
#include <stdio.h>

int main(void) {
    printf("Lista de compras:\n");
    printf("- arroz\n");
    printf("- feijão\n");
    printf("- café\n");
    return 0;
}

Para o compilador, os espaços no começo da linha não fazem diferença nenhuma; para quem lê, fazem toda. A aula Sintaxe mostra as convenções de recuo, e o atalho Shift+Alt+F do VS Code faz isso automaticamente.


Resumo

  • Editor de texto escreve; editor de código ajuda (cores, recuo, autocompletar, erros marcados); IDE integra tudo. Nenhum deles é o compilador.
  • VS Code (recomendado): extensão C/C++ (ms-vscode.cpptools) ou clangd; configure o C23 (C_Cpp.default.cStandard = c23 ou compile_flags.txt com -std=c23).
  • Compile pelo terminal integrado ou com um .vscode/tasks.json e Ctrl+Shift+B, sempre com -std=c23 -Wall -Wextra. Fuja de botões que compilam sem avisos.
  • CLion (IDE completa, grátis para uso não comercial), Visual Studio (Windows, C23 incompleto), Code::Blocks (leve, use -std=c2x se o gcc for antigo), Vim/Neovim (terminal).
  • Arquivo com extensão .c (não .c.txt, nem .cpp), em UTF-8, e salvo antes de compilar.
  • Diante de muitas mensagens de erro, leia a primeira.
  • Próximo passo: conhecer a fundo as caixas Experimente, em O Editor do Guia.