Область видимости, локальные и глобальные переменные C++

Область видимости переменных – это фрагмент кода программы, в котором имеется доступ к переменной.
Глобальная переменная – она имеет область видимости от объявления переменной и до конца программы.
Локальная переменная – имеет область видимости от строки с объявлением переменной и до конца блока, в котором эта переменная объявлена, т.е. до закрывающей }.

Пример 1.

В данной программе переменная a – это две разные переменные.
A – глобальная переменная.
a (в функции func) – локальная переменная.
a (в функции main) – другая локальная переменная.

Пример 2.

Ошибка возникает в ряду того, что переменная b использована в не её области видимости.
Если вы таким образом попробуете изменить значение переменной b в не ее области видимости то компилятор попросту выдаст вам ошибку с сообщением о том, что данная переменная не определена.
Положительной стороной такого рода ограничений является то, что один и тот же идентификатор можно использовать в различных  функциях программы.

Использование глобальных переменных не желательно, так как вы можете легко запутаться в собственном коде программы, не понимая, где конкретно собирались использовать ту или иную глобальную переменную.
Большинство новичков частенько используют большое количество глобальных переменных, считая, что их легче использовать, особенно когда проект содержит большое количество функций. Но в дальнейшем это может перерасти в большую проблему. Большая часть разработчиков полагает, что использование не константных глобальных переменных следует избегать.
Одной из причин опасности использования не константных глобальных переменных, это то, что  любая вызванная функция вашей программы может изменить его значение, и вы даже не поймете, что подобное могло произойти.
Но все же есть плюсы в использовании глобальных переменных, хотя они и не значительные. К примеру, когда вы пишете программу, хранящую некую базу данных и вам нужны переменные лишь для хранения и считывания данных без изменений. В таком случае они могут упростить задачу разработчика.

Подведем итоги!

Необходимо стараться избегать использования не константных глобальных переменных, на сколько это возможно. Если же таких возможностей нет то надо использовать их максимально осторожно.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *