РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
22 of 815 menu

Ключевое слово extern

Ключевое слово extern применяется для объявления переменных и функций, которые определены в другом файле или в другой области видимости. Оно сообщает компилятору, что память для переменной уже выделена где-то в другом месте, и не нужно создавать её заново. Чаще всего extern используется для организации связи между несколькими файлами исходного кода одной программы.

Также extern применяется для указания линковки с кодом, написанном на языке C. Это позволяет использовать функции из библиотек, собранных компилятором C, внутри программы на C++.

Синтаксис

// Объявление внешней переменной extern тип имя_переменной; // Объявление внешней функции extern тип имя_функции(параметры); // Указание линковки с C extern "C" тип имя_функции(параметры);

Пример

Рассмотрим простейший пример использования extern для объявления переменной, определённой ниже в этом же файле:

#include <iostream> using namespace std; extern int num; int main() { cout << num << endl; return 0; } int num = 42;

Результат выполнения кода:

42

Пример

Давайте объявим внешнюю функцию и вызовем её до её фактического определения:

#include <iostream> using namespace std; extern void greet(); int main() { greet(); return 0; } void greet() { cout << "abcde" << endl; }

Результат выполнения кода:

"abcde"

Пример

Использование extern "C" для линковки с функцией, написанной на языке C:

#include <iostream> using namespace std; extern "C" int c_func(int x); int main() { cout << c_func(5) << endl; return 0; }

Результат выполнения кода (при наличии соответствующей C-функции):

10

Смотрите также

  • ключевое слово static,
    которое задаёт статическую продолжительность хранения
  • ключевое слово const,
    которое делает объект неизменяемым
  • директива #include,
    которая подключает содержимое другого файла
  • ключевое слово namespace,
    которое организует именованные области видимости
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить