Поделиться через


Внешние

Объекты и переменные, объявленные как extern, объявляют объект, определенный в другой записи преобразования или во внешней области видимости, как имеющий внешнюю компоновку.

Объявление переменных const с классом хранения extern принудительно задают для переменной внешнюю компоновку. Инициализация переменной extern const допускается в записи преобразования, в которой эта переменная определена. Инициализации в записях преобразования, отличных от записи, содержащей определение, дает неопределенные результаты.

В следующем коде показаны два объявления extern, DefinedElsewhere (обозначает имя, определенное в другой записи преобразования) и DefinedHere (обозначает имя, определенное во внешней области видимости):

// external.cpp
// defined in another translation unit
extern int DefinedElsewhere;   
int main() {
   int DefinedHere; 
   {
      // refers to DefinedHere in the enclosing scope
      extern int DefinedHere;
    }
}

См. также

Ссылки

Классы хранения в C++

Использование ключевого слова extern для задания компоновки