В чем разница между static
глобальный и неstatic
глобальный идентификатор в C ++?
Static ограничивает область действия переменной блок перевода.
статический глобальный переменная имеет внутренняя связь.
нестатический глобальный переменная имеет внешняя связь.
Хорошо для чтения:
Что такое внешняя связь и внутренняя связь?
Глобальный static
переменная доступна только в блок перевода (т. е. исходный файл), в которой находится переменная. На нестатическую глобальную переменную можно ссылаться из других исходных файлов.
Если вы не знаете, в чем разница, правильный ответ, вероятно, будет еще более запутанным для вас. Короче, static
Классы не предназначены для статики в области видимости файла. Статика класса по существу идентична обычным переменным, но на них нужно будет ссылаться, добавляя к ним префикс имени класса. Статика в области видимости файла — это обычные переменные, которые являются локальными только для файла. Чтобы понять, что это значит, попробуйте добавить две переменные с одинаковым именем в один проект. Вы получите ошибки компоновщика, потому что есть несколько идентичных символов. Делая символы статичными, вы избежите проблем, и имя переменной не будет доступно из-за пределов файла.
Глобальные Нестатические переменные доступны из других файлов, тогда как статические глобальные переменные не доступны