Почему статический блок делает внутреннюю связь

Я понимаю, что создание чего-то статического создает внутреннюю связь, и другие единицы перевода не могут получить доступ к символу. Может кто-нибудь объяснить, почему создание статического делает это? это из стандартного или некоторого языкового трюка, который делает переменную невидимой со статическим объявлением?

1 ответ

static может сбить с толку, потому что он имеет несколько разных значений в зависимости от контекста. В этом контексте это означает, что определяемая переменная видна только в текущей единице перевода:

int i;        // visible in all translation units
static int j; // visible only in the current translation unit
Другие вопросы по тегам