Подтвердить что ты не робот

В чем разница между статическим глобальным и нестатистическим глобальным идентификатором в С++?

В чем разница между глобальным идентификатором static и глобальным идентификатором static в С++?

4b9b3361

Ответ 1

Статический ограничивает область действия переменной той же самой единиц перевода.
статическая глобальная переменная имеет внутреннюю привязку.
нестатическая глобальная переменная имеет внешнюю привязку.

Хорошее чтение:
Что такое внешняя связь и внутренняя связь?

Ответ 2

Глобальная переменная static доступна только в блоке трансляции (то есть в исходном файле), в которой находится переменная. Нестатическая глобальная переменная может ссылаться на другие исходные файлы.

Ответ 3

Если вы не знаете, в чем разница, правильный ответ, вероятно, будет еще более запутанным для вас. Короче говоря, static класса не имеет значения для статики в области файлов. Статика класса эксиально идентична регулярным переменным, но на них нужно будет ссылаться, префикс их с именем класса. Statics в области файлов являются регулярными переменными, которые являются локальными только для файла. Чтобы понять, что это означает, попробуйте добавить две переменные с тем же именем в один проект. Вы получите ошибки компоновщика, потому что есть несколько одинаковых символов. Ставя символы, вы избежите того, что проблемы и имя переменной не будут доступны извне файла.

Ответ 4

Глобальные нестатические переменные доступны из других файлов, тогда как статические глобальные переменные не являются