Форум программистов, компьютерный форум, киберфорум
Теория и практика программирования
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/25: Рейтинг темы: голосов - 25, средняя оценка - 4.92
5 / 5 / 5
Регистрация: 07.07.2014
Сообщений: 559
1

Минусы глобальных переменных

10.11.2015, 11:40. Показов 5010. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день ув. пользователи! Чисто практически, как вы думаете, какие минусы хранения информации в глобальных переменных ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.11.2015, 11:40
Ответы с готовыми решениями:

Использование глобальных переменных
Доброго времени суток, уважаемые форумчане! Такой вопрос - почему использование глобальных...

Кто распределяет память для статических и глобальных переменных?
Кто распределяет память для статических и глобальных переменных?

Рассмотреть программу, написать имена глобальных переменных, локальных переменных, формальных параметров
Program P1; var s:string; procedure P(var s:string) ; var i, j : integer; ...

О глобальных переменных
Народ всем привет! Я только начал программировать на Visual Basic 2005 express edition. Помогите с...

3
Эксперт PHP
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
10.11.2015, 12:27 2
В моих проектах если и есть такие данные, которые должны быть видны отовсюду, то обычно их можно запихнуть в константу.

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

А так гугл всё расскажет за меня:
Использование глобальных переменных снижает читабельность, делает код сложным для понимания. Очень сложно определить где, как и с какой целью была проинициализирована глобальная переменная и как правильно ее использовать.
Код с глобальными переменными сложно сопровождать. При изменении глобальной переменной вы вынуждены просматривать весь код, чтобы внести изменения везде, где используется эта переменная.
Злоупотребление глобальными переменными может привести к ошибкам, которые очень сложно отлаживать. Без какого-либо механизма контроля за использованием переменной очень просто записать в переменную невалидные данные, которые могут привести к ошибкам в других частях кода (например, если в одной части кода переменная заполняется массивом, а в другой части кода в этой переменной ожидается объект).
Можно забыть объявить переменную глобальной и работать с локальной переменной, не замечая этого, до тех пор пока приложение не сломается. Такие ошибки сложно отлаживать.
Если вы совмещаете свой код с чужим (например при использовании стороних библиотек или при написании расширений для другого ПО) и обе системы используют глобальные переменные, существует вероятность того, что названия переменных могут совпасть. Это становится причиной возникновения ошибок в обеих системах, которые сложно отлавливать.
Все части кода, использующие одну глобальную переменную, сильно связаны между собой. Разделить сильно связанный код очень сложно. Это затрудняет его повторное использование.
Написание юнит-тестов становится более сложным, поскольку тесту не известно, какие глобальные переменные нужны и как проинициализировать все глобальные переменные валидными значениями.
1
Антикодер
1804 / 869 / 48
Регистрация: 15.09.2012
Сообщений: 3,081
11.11.2015, 05:22 3
Есть очень хороший пример в видеолекции Дениса Москвина "Функциональное программирование -> Лямбда исчисления"
0
5 / 5 / 5
Регистрация: 07.07.2014
Сообщений: 559
11.11.2015, 16:02  [ТС] 4
Jodah,XRuZzz спасибо.
0
11.11.2015, 16:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.11.2015, 16:02
Помогаю со студенческими работами здесь

создание глобальных переменных
В общем нужна глобальная пиеременная. ДЕлаю все как в инструкции: Создаю класс и описываю в нем...

Без глобальных переменных.
1. void __fastcall TForm2::FormClick(TObject *Sender) { TPoint pt; GetCursorPos(&pt); ...

Сброс глобальных переменных
Есть программа, в которой из за моей криворукости используется очень много глобальных переменных....

Передача глобальных переменных
Здравствуйте. Подскажите пожалуйста. Я работал под windows в visual studio. Там было разработано...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru