Pular para conteúdo

Aula 02 – Estrutura de um Programa em C 🏗️

Na aula anterior, rodamos nosso primeiro código. Hoje, vamos desmontar um programa C para entender cada uma de suas peças e como elas se encaixam durante o processo de compilação.


🧩 Anatomia de um Código C

Todo programa em C possui elementos fundamentais que garantem seu funcionamento. Observe o exemplo abaixo:

#include <stdio.h> // 1. Diretiva do Pré-processador

/*
   2. Comentário de múltiplas linhas:
   Este programa imprime uma saudação.
*/

int main() { // 3. Ponto de Entrada (Função Principal)
    // 4. Instrução ou Comando (Statement)
    printf("Entendendo a estrutura do C!\n"); 

    return 0; // 5. Valor de Retorno
}

Explicação dos Componentes:

  1. #include <stdio.h>: Avisa ao compilador que usaremos funções de entrada e saída (como o printf).
  2. Comentários: Texto ignorado pelo compilador, usado para explicar o código (// para uma linha ou /* ... */ para blocos).
  3. int main(): A "chave de ignição". Todo código C começa a ser executado aqui.
  4. Chaves { }: Delimitam o início e o fim de um bloco de código.
  5. Ponto e vírgula ;: Indica o final de uma instrução. Omiti-lo é o erro mais comum de iniciantes!

⚙️ O Ciclo de Vida do Código (Compilação)

Não escrevemos algo que o processador entende diretamente. O código passa por 3 etapas principais:

graph TD
    A["Código Fonte (.c)"] --> B["Pré-processador"]
    B -- "Código Expandido" --> C["Compilador"]
    C -- "Código de Máquina (.o / .obj)" --> D["Linker"]
    D -- "Bibliotecas Externas" --> E["Executável (.exe / .out)"]
    style A fill:#e1f5fe
    style E fill:#c8e6c9
  1. Pré-processador: Trata as linhas que começam com # (inclui arquivos e substitui macros).
  2. Compilador: Traduz o código C para linguagem de montagem (assembly) e depois para código de objeto.
  3. Linker: Une seu código com as bibliotecas do sistema (como a stdio) para criar o executável final.

💻 Prática: Compilando com Nome Personalizado

No terminal, podemos dar qualquer nome ao nosso programa usando a flag -o (output).

$ gcc aula02.c -o meu_programa
$ ./meu_programa
Entendendo a estrutura do C!

⚠️ Erros Comuns e Como Corrigi-los

[!WARNING] Syntax Error: Geralmente causado por falta de ; ou fechar chaves } incorretamente. O compilador indicará a linha aproximada do erro.

[!TIP] Dica: Sempre indente seu código (use espaços/tabs no início das linhas). Isso ajuda a visualizar onde começam e terminam as funções.


🚀 Mini-Projeto da Aula: "O Calculador de Área"

Objetivo: Criar um arquivo chamado area.c que use múltiplos printf para exibir a fórmula de cálculo da área de um quadrado (\(A = L^2\)) acompanhado de um desenho do quadrado feito com caracteres.

Exemplo de Saída:

CÁLCULO DE ÁREA
---------------
      ____
     |    |
     |    | L=5
     |____|
Area = 25
---------------


📝 Exercícios de Fixação

  1. Qual a função das bibliotecas (headers) terminadas em .h?
  2. Crie um programa com um erro proposital (tire o ;) e observe a mensagem do GCC. O que ela diz?
  3. Escreva um programa que use comentários para explicar o que cada linha do seu código faz.

Próxima Aula: Variáveis & Tipos