Arquivos de Cabeçalho
Parte da seção Object Oriented Programming do Journey de C da Coddy — lição 1 de 61.
À medida que os programas em C crescem, manter todo o código em um único arquivo torna-se inviável. Arquivos de cabeçalho fornecem uma maneira de organizar seu código, separando o que uma função faz de como ela faz.
Um arquivo de cabeçalho (com a extensão .h) contém declarações de função (também chamadas de protótipos). Essas declarações informam ao compilador que uma função existe e quais parâmetros ela recebe, sem fornecer a implementação real.
// math_utils.h
int add(int a, int b);
Para usar declarações de um arquivo de cabeçalho, você o inclui com a diretriz #include. Para seus próprios cabeçalhos, use aspas duplas em vez de colchetes angulares:
// main.c
#include "math_utils.h"
int add(int a, int b) {
return a + b;
}
int main() {
int result = add(5, 3);
return 0;
}
A principal diferença: #include <stdio.h> procura nos diretórios do sistema, enquanto #include "math_utils.h" primeiro procura na pasta do seu projeto. Essa separação permite que múltiplos arquivos compartilhem as mesmas declarações de função, tornando sua base de código mais fácil de navegar e manter.
Folha de consulta
Arquivos de cabeçalho (com extensão .h) contêm declarações de função que informam ao compilador que uma função existe sem fornecer sua implementação:
// math_utils.h
int add(int a, int b);
Inclua seus próprios arquivos de cabeçalho usando aspas duplas:
// main.c
#include "math_utils.h"
int add(int a, int b) {
return a + b;
}
#include <stdio.h> procura nos diretórios do sistema, enquanto #include "math_utils.h" procura primeiro na pasta do seu projeto.
Experimente você mesmo
Esta lição não inclui um desafio de código.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Object Oriented Programming
1Fundamentos da Programação Modular
Arquivos de CabeçalhoInclude GuardsArquivos-FonteFunções EstáticasRecapitulação: Calculadora Modular4Encapsulamento
Conceito de Ponteiros OpacosDefinindo Structs OpacasGetters e SettersValidação em SettersRecapitulação: Caixa Secreta2Objetos e Métodos
Structs como ObjetosO Ponteiro 'Self'Const CorrectnessPonteiro vs ValorMétodos AuxiliaresRecapitulação: Point Manager5Projeto: Conta Bancária Simples
Configuração do ProjetoImplementação da Conta3Ciclo de Vida de Objetos
Padrão de ConstrutorPadrão de DestrutorInicialização na StackCópia ProfundaRecapitulação: String Wrapper6Herança via Composição
Incorporação de StructsA Regra do Primeiro MembroAcessando Membros PaiUpcastingRecapitulação: Hierarquia de Formas9Projeto: Desenhador de Formas
Visão Geral do ProjetoImplementação do Círculo