Easyextern
Что такое extern и для чего используется?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
`extern` — спецификатор linkage. Главное применение: объявление переменной, определённой в другом TU.
// config.h — объявление
extern int globalCounter;
// config.cpp — определение (одно на всю программу)
int globalCounter = 0;
// Внешний TU использует как обычно
void f() { globalCounter++; } // линкер найдёт определение
// extern template — ускорение компиляции
extern template class std::vector<int>; // не инстанцировать здесьconst-глобалы в C++ по умолчанию internal; чтобы сделать external — extern const int x = 5;. extern "C" — отдельная роль (linkage specification для C).
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.