Глобальные и локальные переменные

Глобальные переменные доступны из любой процедуры или функции. Поэтому их надо

объявлять вне всех подпрограмм. Остальные переменные, объявленные в процедурах и функциях, называются локальными (местными), поскольку они известны только той подпрограмме,где они объявлены. Следующий пример показывает различие между локальными и глобальными переменными.

 

• Глобальные переменные не надо заново объявлять в подпрограммах.

• Если в подпрограмме объявлена локальная переменная с таким же именем, как и глобальная переменная, то используется локальнаяпеременная.

• Если имена глобальной и локальной переменных совпадают, то для обращения к глобальной переменной в подпрограмме перед ее именем ставится два двоеточия:

 

Однако специалисты рекомендуют использовать как можно меньше глобальных переменных, а лучше всего – не использовать их вообще, потому что глобальные переменные

• затрудняют анализ и отладку программы;

• повышают вероятность серьезных ошибок — можно не заметить, что какая-то подпрограмма изменила глобальную переменную;

• увеличивают размер программы, так как заносятся в блок данных, а не создаются в процессе выполнения программы.

Поэтому глобальные переменные применяют в крайних случаях:

• для хранения глобальных системных настроек (цвета экрана и т.п.);

• если переменную используют три и более подпрограмм и по каким-то причинам неудобно передавать эти данные в подпрограмму как параметры.

Везде, где можно, надо передавать данные в процедуры и функции через их параметры. Если же надо, чтобы подпрограмма меняла значения переменных, надо передавать параметр по ссылке.








Дата добавления: 2015-10-05; просмотров: 2166;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.