C · Intermediário · Português · Técnico
definição e declaração
Declaração apresenta um nome e seu tipo ao compilador; definição também reserva memória ou fornece o corpo da função. Pode haver várias declarações, mas só uma definição.
Onde usar
extern int n; declara, e int n = 0; define. O erro multiple definition ocorre quando um .h tem uma definição incluída por vários .c, e undefined reference quando falta a definição.
Em código
// util.h: declaração
extern int contador;
int soma(int, int);
// util.c: definição
int contador = 0;Exemplos
O cabeçalho só deve ter a declaração, a definição fica no .c.
Dá erro de múltiplas definições porque a definição está no .h.
Cuidado
Colocar definições de variáveis em cabeçalhos; ponha extern no .h e a definição em um único .c.