C Módulos Intermediário
Compilação separada
Em C, programas grandes são organizados em múltiplos arquivos .c, cada um compilado separadamente em um arquivo objeto (.o). Depois, o linker junta esses objetos em um único executável. Essa técnica é chamada compilação separada.
Para que um arquivo .c use funções ou variáveis definidas em outro, é preciso uma declaração visível. Isso é feito com arquivos de cabeçalho (.h) que contêm protótipos de funções e declarações extern de variáveis globais. A palavra-chave extern indica que a variável existe em outro lugar, enquanto static restringe o escopo ao próprio arquivo (visibilidade interna).
Um Makefile automatiza o processo: descreve as dependências entre fontes, objetos e o executável final, e executa apenas os comandos necessários quando algo muda. Assim, a compilação separada se torna prática e rápida.
Pontos-chave
- Arquivos
.hcontêm declarações (protótipos,extern, macros) e são incluídos com#include. - Arquivos
.ccontêm as definições (corpo das funções, variáveis globais). externdeclara uma variável ou função definida em outro arquivo;staticlimita a visibilidade ao próprio arquivo.- Cada
.cé compilado independentemente para gerar um.o; o linker une os.ono executável. - Um Makefile descreve regras de compilação e evita recompilar tudo a cada mudança.
#include <stdio.h>
#include "math_utils.h"
int main(void) {
int a = 10, b = 3;
printf("soma: %d\n", soma(a, b));
printf("multiplicacao: %d\n", multiplica(a, b));
return 0;
}