ключевое слово static ограничивает область действия глобальной переменной этой единицей перевода. Если я использую static int x
в файле.h и включу этот файл.h во все остальные файлы, не будут ли все они принадлежать одной и той же единице перевода? Тогда разве x не будет виден везде? Итак, какова роль статики сейчас?
Кроме того, можно ли использовать static const int x
, где x — глобальная переменная? Разве не все константные глобальные переменные статичны по умолчанию? И ограничена ли область действия константной переменной TU, даже если она ограничена циклом for в файле?