Externos
Los objetos y variables declarados como extern declaran un objeto definido en otra unidad de traducción o en un ámbito envolvente como si tuvieran vinculación externa.
La declaración de variables const con la clase de almacenamiento extern fuerza la variable a tener vinculación externa. Una inicialización de una variable de extern const se permite en la unidad de traducción de la definición. Las inicializaciones en unidades de traducción distintas de la unidad de traducción de la definición generan resultados sin definir.
En el código siguiente se muestran dos declaraciones extern, DefinedElsewhere (que hace referencia a un nombre definido en una unidad de traducción diferente) y DefinedHere (que hace referencia a un nombre definido en un ámbito de inclusión):
// external.cpp
// defined in another translation unit
extern int DefinedElsewhere;
int main() {
int DefinedHere;
{
// refers to DefinedHere in the enclosing scope
extern int DefinedHere;
}
}