ExpertiDict

C · Essencial · Inglês · Técnico

extern

/ˈɛks.tɝn/palavra-chave

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

Veja também

Todos os termos de C