Pular para conteúdo

Aula 14 – Organização de Projetos 📂

Até agora, todos os nossos programas tinham apenas um arquivo .c. Em projetos profissionais, o código é dividido em dezenas ou centenas de arquivos para facilitar a organização. Em C, usamos arquivos de Cabeçalho (.h) e arquivos de Implementação (.c).


🏗️ 1. A Divisão do Trabalho

  • Arquivo de Cabeçalho (.h): Contém as "promessas" (protótipos das funções, definições de structs e constantes). É o manual de instruções.
  • Arquivo de Implementação (.c): Contém o código real das funções.

🛡️ 2. Header Guards

Para evitar que o compilador inclua o mesmo arquivo várias vezes (causando erros), usamos os "Guardiões de Cabeçalho":

// util.h
#ifndef UTIL_H
#define UTIL_H

void saudar();

#endif

🛠️ 3. Exemplo Prático: Projeto Modular

Imagine um projeto com 3 arquivos:

  1. calculos.h (Protótipos)
  2. calculos.c (Lógica das funções)
  3. main.c (Ponto de entrada que usa as funções)

No main.c:

#include <stdio.h>
#include "calculos.h" // Aspas "" indicam arquivos locais ao projeto

int main() {
    printf("Resultado: %d", somar(10, 20));
    return 0;
}


⚙️ 4. Compilando Múltiplos Arquivos

Para gerar o programa final, precisamos compilar todos os arquivos .c juntos:

$ gcc main.c calculos.c -o meu_projeto
$ ./meu_projeto

📜 5. Introdução ao Makefile (Básico)

O Makefile é um script que automatiza o processo de compilação. Em vez de digitar um comando gigante no terminal, você apenas digita make.

# Exemplo simplificado de Makefile
all:
    gcc main.c calculos.c -o meu_projeto

🚀 Mini-Projeto da Aula: "Calculadora Modular"

Objetivo: Criar um projeto onde as funções matemáticas (somar, subtrair, multiplicar) fiquem em arquivos separados do main.c. O desafio é compilar tudo junto e garantir que os headers funcionem.


📝 Exercícios de Fixação

  1. Crie um header geometria.h com constantes para PI e protótipos para área de círculo. Implemente no geometria.c e use no main.c.
  2. O que acontece se você esquecer as aspas "" e usar < > para um arquivo que você criou? Teste e observe o erro do compilador.
  3. Desafio: Tente criar um Makefile que compile seu projeto e também tenha um comando clean para apagar o executável.

Próxima Aula: Projeto Integrador