extern С++ указание внешней компоновки

extern - может применяться к объявлению глобальной переменной, функции или шаблона, оно указывает, что символ имеет внешнюю компоновку. Может иметь 4 значения:

1) Для не константной переменной указывает что она определена в другой единице трансляции. Должно указываться в каждом файле где используется переменная.


// file1
int i = 10;     // Определена переменная i (только один раз)

// file2
extern int i;   // Говорит что i определена в другом файле
i = 20;         // Использование i

// file3
extern int i;   // Говорит что i определена в другом файле
int a = i;      // Использование i

2) Константные (const) переменные имеют внутреннюю компоновку по умолчанию. Ключевое слово extern, перед const, говорит что будет применена внешняя компоновка, необходимо во всех файлах использовать ключевые слова extern const


// file1
extern const int i = 10; // Определена переменная (только один раз)

// file2
extern const int i;     // Говорит что i определена в другом файле
int a = i;              // Использование i

// file3
extern const int i;     // Говорит что i определена в другом файле
int b = i + 5;          // Использование i

3) extern "C" указывает, что функция определена в другом месте и использует соглашение о вызовах языка C. Модификатор extern "C" также может применяться к нескольким объявлениям функций в блоке.

4) В объявлении шаблона указывает, extern что экземпляр шаблона уже создан в другом месте. extern сообщает компилятору, что он может повторно использовать другой экземпляр, а не создавать новый в текущем расположении.

2023-10-22



Понравилась страница?
Добавить в закладки
Или поделиться!

Связанные темы

extern С++ указание внешней компоновки
static C++ статические переменные и члены классов