C · Essencial · Inglês · Técnico
extern
Palavra-chave que declara uma variável ou função definida em outro arquivo, sem reservar memória aqui. O linker resolve a ligação com a definição na hora de montar o programa.
Onde usar
Surge em headers que expõem uma variável global e ao depurar erro de múltiplas definições. A definição fica em um único .c; os demais arquivos só enxergam a declaração extern.
Em código
/* config.h */
extern int nivel_log;
/* config.c */
#include "config.h"
int nivel_log = 2;Exemplos
Declare it extern in the header and define it in one .c file.
Declare como extern no header e defina em um único arquivo .c.
The linker complains because the variable is defined twice, without extern.
O linker reclama porque a variável está definida duas vezes, sem extern.
Cuidado
Colocar no header a definição com valor inicial, o que gera 'multiple definition' ao ligar vários arquivos.
Sinônimos
declaração externa
Antônimos
static