Внутреннее связывание в C++
Внутреннее связывание ограничивает имя текущим файлом: линковщик не ищет такое имя в других объектных модулях.
Для функции на уровне файла достаточно
ключевого слова static либо
объявления внутри безымянного
пространства имен. Снаружи файла
эти имена недоступны, зато в main
они вызываются как обычно.
Зададим static-функцию и функцию
в безымянном пространстве, затем
вызовем обе из main:
#include <iostream>
static void ping() {
std::cout << "ping\n";
}
namespace {
void tick() {
std::cout << "tick\n";
}
}
int main() {
ping();
tick();
return 0;
}
Объявите static void seed();,
печатающую seed, и функцию
ready в безымянном пространстве,
печатающую ready. Вызовите
обе из main по очереди.
Создайте static int lane(),
возвращающую 1. Выведите
значение через вызов из main.