Olá, mundo em C
Esta aula apresenta o primeiro programa em C, explicando a estrutura mínima necessária, o uso de #include e a função main, a função printf para saída de dados, e os passos para compilar e executar o código.
Nesta aula, vamos escrever nosso primeiro programa em C: o clássico "Olá, mundo!". Esse programa simples é o ponto de partida para aprender a sintaxe básica da linguagem, o processo de compilação e execução. Vamos entender cada parte do código e como ele funciona.
O "Olá, mundo!" em C é um programa que exibe uma mensagem na tela. Embora pareça trivial, ele introduz conceitos fundamentais como a função principal (main), a inclusão de bibliotecas (#include), e a saída formatada (printf). Ao final, você será capaz de compilar e executar seu primeiro programa C.
Estrutura mínima
Todo programa em C precisa de uma estrutura básica para ser executado. A estrutura mínima consiste em uma função main que é o ponto de entrada do programa. Veja o exemplo mais simples possível:
int main() {
return 0;
}Esse programa não faz nada além de retornar 0 para o sistema operacional, indicando que terminou com sucesso. A função main é obrigatória em programas executáveis. Ela pode ter parâmetros (argc e argv), mas na forma mais simples não recebe argumentos. O tipo de retorno int significa que a função retorna um valor inteiro. O return 0; é a instrução que encerra o programa.
É importante notar que o código deve estar dentro de chaves { } e cada instrução termina com ponto e vírgula (;). A indentação não é obrigatória, mas melhora a legibilidade.
#include e main
Para usar funções da biblioteca padrão, como printf, precisamos incluir cabeçalhos (headers) que declaram essas funções. A diretiva #include insere o conteúdo de um arquivo de cabeçalho no programa antes da compilação. O mais comum é #include <stdio.h>, que fornece funções de entrada e saída padrão.
#include <stdio.h>
int main() {
printf("Olá, mundo!\n");
return 0;
}A função main é chamada pelo sistema operacional quando o programa é executado. Ela pode ser declarada de várias formas, mas a mais comum é int main(void) ou simplesmente int main(). O parâmetro void indica explicitamente que a função não recebe argumentos. O corpo da função contém as instruções que serão executadas.
Note que #include é uma diretiva de pré-processador, não uma instrução C. Ela não termina com ponto e vírgula. O pré-processador processa essas diretivas antes da compilação propriamente dita.
printf
A função printf (print formatted) é usada para exibir texto na saída padrão (geralmente o terminal). Ela é declarada no cabeçalho stdio.h. O primeiro argumento é uma string de formato, que pode conter caracteres de escape e especificadores de formato.
printf("Olá, mundo!\n");Neste exemplo, a string "Olá, mundo!" é exibida, e o \n insere uma nova linha (equivalente a Enter). Outros caracteres de escape comuns são \t (tabulação), \\ (barra invertida) e \" (aspas duplas).
printf também pode exibir valores de variáveis usando especificadores como %d (inteiro), %f (float), %c (caractere), %s (string). Exemplo:
int idade = 25;
printf("Idade: %d\n", idade);Isso exibirá "Idade: 25". A função retorna o número de caracteres impressos, mas esse retorno é frequentemente ignorado.
Compilando e executando
Para transformar o código-fonte C em um programa executável, precisamos de um compilador. O mais comum é o GCC (GNU Compiler Collection). Suponha que o arquivo se chame ola.c. No terminal, compile com:
gcc ola.c -o olaIsso gera um executável chamado ola (no Windows, ola.exe). A opção -o especifica o nome do arquivo de saída. Se omitido, o padrão é a.out.
Para executar, no Linux/macOS:
./olaNo Windows:
ola.exeO programa então exibirá a mensagem no terminal. Se houver erros de compilação, o GCC os listará, indicando linha e tipo de erro. É importante corrigir todos os erros antes de executar.
Exemplo completo do programa:
#include <stdio.h>
int main() {
printf("Olá, mundo!\n");
return 0;
}Salve em um arquivo ola.c, compile com gcc ola.c -o ola e execute.
Boas práticas
Sempre inclua \n no final da string do printf para garantir que a saída seja exibida imediatamente (alguns sistemas bufferizam a saída). Use nomes de arquivos com extensão .c. Mantenha o código organizado com indentação consistente. Comente seu código para explicar partes importantes, usando // para comentários de linha ou /* */ para blocos.
Exercícios
- Escreva um programa que exiba seu nome na tela.
- Modifique o programa anterior para exibir seu nome e sobrenome em duas linhas separadas.
- Escreva um programa que declare uma variável inteira com sua idade e a exiba usando printf.
- O que acontece se você esquecer de incluir
#include <stdio.h>e usar printf? Explique e teste. - Escreva um programa que exiba uma mensagem de boas-vindas e, em seguida, o resultado da expressão 2 + 2.
#include <stdio.h>
int main() {
printf("João\n");
return 0;
}#include <stdio.h>
int main() {
printf("João\n");
printf("Silva\n");
return 0;
}#include <stdio.h>
int main() {
int idade = 30;
printf("Idade: %d\n", idade);
return 0;
}stdio.h para usar printf.#include <stdio.h>
int main() {
printf("Bem-vindo!\n");
printf("2 + 2 = %d\n", 2 + 2);
return 0;
}