Olá, mundo em C
Esta aula apresenta a estrutura mínima de um programa em C, explicando o uso de #include, a função main e a função printf. Ao final, você aprenderá a compilar e executar seu primeiro programa "Olá, mundo".
Nesta aula, vamos dar o primeiro passo prático na linguagem C: escrever um programa que exibe a mensagem "Olá, mundo!" na tela. Esse é um rito de passagem para programadores e nos permite entender a estrutura básica de um programa C, como incluir bibliotecas, definir o ponto de entrada e usar a saída padrão. Além disso, veremos como compilar e executar o código no terminal.
Ao final, você terá seu primeiro programa funcional e compreenderá cada parte dele. Vamos começar!
Estrutura mínima
Todo programa em C precisa de uma estrutura fundamental para ser executado. A estrutura mínima consiste em uma função principal chamada main, que é o ponto de entrada do programa. Quando o sistema operacional executa um programa compilado em C, ele procura pela função main e começa a execução por ali.
Além da função main, geralmente incluímos bibliotecas que fornecem funções prontas, como a printf para saída formatada. A biblioteca padrão é a stdio.h (Standard Input Output). A estrutura mínima, portanto, é:
#include <stdio.h>
int main() {
return 0;
}
Esse programa não faz nada além de retornar 0 (indicando sucesso), mas já é um programa C válido. A partir daqui, podemos adicionar instruções dentro das chaves da função main.
#include e main
A diretiva #include é uma instrução de pré-processamento que insere o conteúdo de um arquivo (geralmente um cabeçalho, como stdio.h) no código fonte antes da compilação. O cabeçalho stdio.h contém declarações de funções de entrada e saída, como printf e scanf. Sem ele, o compilador não reconheceria essas funções.
A função main é obrigatória em programas executáveis. Sua assinatura padrão é int main(void) ou int main(), e ela retorna um valor inteiro para o sistema operacional. O valor 0 indica sucesso; valores diferentes indicam erros. A estrutura geral é:
#include <stdio.h>
int main() {
// instruções
return 0;
}
Note que as chaves { } delimitam o corpo da função, e cada instrução termina com ponto e vírgula.
printf
A função printf (print formatted) exibe texto formatado na saída padrão (geralmente o terminal). Ela está declarada no cabeçalho stdio.h. Para exibir uma mensagem simples, passamos uma string entre aspas duplas como argumento:
printf("Olá, mundo!\n");
O \n é um caractere de escape que representa uma nova linha (quebra de linha). Sem ele, o cursor permaneceria na mesma linha. A função printf também permite formatar variáveis, mas veremos isso em aulas futuras. Agora, vamos montar o programa completo:
#include <stdio.h>
int main() {
printf("Olá, mundo!\n");
return 0;
}
Esse é o clássico "Olá, mundo" em C.
Compilando e executando
Para transformar o código fonte em um programa executável, usamos um compilador C. O mais comum é o GCC (GNU Compiler Collection). Suponha que o arquivo se chama ola.c. No terminal, dentro do diretório do arquivo, execute:
gcc ola.c -o ola
Isso compila o código e gera um executável chamado ola (no Windows, ola.exe). A opção -o define o nome do executável; se omitida, o padrão é a.out (ou a.exe).
Para executar, no Linux/macOS:
./ola
No Windows (PowerShell ou cmd):
ola.exe
Você verá a mensagem "Olá, mundo!" impressa no terminal.
Caso o GCC não esteja instalado, você pode usar outros compiladores como Clang ou MSVC. Mas o GCC é amplamente disponível e recomendado para aprendizado.
Boas práticas
1. Sempre inclua a quebra de linha (\n) no final das mensagens para evitar que o prompt do terminal fique na mesma linha.
2. Use nomes de arquivo com extensão .c para que o compilador reconheça como código C.
3. Mantenha a indentação consistente (por exemplo, 4 espaços por nível) para legibilidade.
4. Retorne 0 no final da main para indicar sucesso.
Referências
- Wikipedia: C (linguagem de programação)
- GNU C Manual
- cppreference: C
- GCC, the GNU Compiler Collection
- IME-USP: Introdução à linguagem C
Exercícios
-
Escreva um programa C que exiba a mensagem "Bem-vindo ao curso de C!" na tela.
✓ Resposta:#include <stdio.h> int main() { printf("Bem-vindo ao curso de C!\n"); return 0; } -
O que acontece se você omitir a diretiva
#include <stdio.h>e usarprintf? Teste mentalmente.✓ Resposta:O compilador emitirá um aviso ou erro informando que a função
printfnão foi declarada. Em muitos compiladores, o código ainda compila com um aviso, mas o comportamento é indefinido (pode falhar ou funcionar por acaso). Sempre inclua o cabeçalho adequado. -
Modifique o programa "Olá, mundo" para exibir seu nome em uma linha separada, usando dois
printf.✓ Resposta:#include <stdio.h> int main() { printf("Olá, mundo!\n"); printf("Meu nome é João.\n"); return 0; } -
Qual é a finalidade do
return 0;no final da funçãomain?✓ Resposta:O
return 0;indica ao sistema operacional que o programa terminou com sucesso. Valores diferentes de zero geralmente indicam erro. Embora o compilador possa assumirreturn 0implicitamente em C99 em diante, é boa prática escrevê-lo explicitamente. -
Compile e execute o programa abaixo. Ele funcionará? Por quê?
int main() { printf("Teste\n"); return 0; }✓ Resposta:Provavelmente não funcionará ou gerará um aviso, pois falta a inclusão de
<stdio.h>. O compilador não reconheceráprintfe emitirá um erro (ou aviso, dependendo das configurações). O código pode até compilar com avisos, mas não é confiável. Sempre inclua os cabeçalhos necessários.