Externo
Os objetos e variáveis declaradas como extern declaram um objeto que é definido em outra unidade de tradução ou em um escopo delimitador como tendo vinculação externa.
A declaração de variáveis const com a classe de armazenamento extern força o vínculo externo da variável. Uma inicialização de uma variável extern const é permitida na unidade de tradução de definição. As inicializações das unidades de tradução diferentes da unidade de tradução de definição geram resultados indefinidos.
O código a seguir mostra duas declarações extern, DefinedElsewhere (que se refere a um nome definido em uma unidade de tradução diferente) e DefinedHere (que se refere a um nome definido em um escopo delimitador):
// external.cpp
// defined in another translation unit
extern int DefinedElsewhere;
int main() {
int DefinedHere;
{
// refers to DefinedHere in the enclosing scope
extern int DefinedHere;
}
}