Zewnętrzne
Obiekty i zmienne zadeklarowane jako extern deklarują obiekt, który jest zdefiniowany w innej jednostce tłumaczenia lub w zakresie otaczającym posiadającym zewnętrzne powiązania.
Deklaracja zmiennych const z klasą magazynowania extern wymusza na zmiennej posiadanie połączeń zewnętrznych.Inicjowanie zmiennej extern const jest dozwolone w definicji jednostki tłumaczeń.Inicjalizacje w jednostkach tłumaczeń innych niż jednostki definiujące tłumaczenia, produkują wyniki niezdefiniowane.
Poniższy kod ilustruje dwie extern deklaracje, DefinedElsewhere (które odnoszą się do nazwy zdefiniowanej w innej jednostce tłumaczeń) i DefinedHere (która odnosi się do nazwy zdefiniowanej w zakresie):
// external.cpp
// defined in another translation unit
extern int DefinedElsewhere;
int main() {
int DefinedHere;
{
// refers to DefinedHere in the enclosing scope
extern int DefinedHere;
}
}