Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Результаты опроса: Функции имеют право изменять содержимое глобальных переменных?
Да 39 86.67%
Нет 4 8.89%
Не знаю 2 4.44%
Голосовавшие: 45. Вы ещё не голосовали в этом опросе

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2010, 19:32   #31
Cold_Night
Пользователь
 
Регистрация: 13.02.2009
Сообщений: 32
По умолчанию

Цитата:
Функции имеют право изменять содержимое глобальных переменных?
Переменная на то и переменная, чтоб менять ей значение в Run-time, независимо от того, глобальная она или локальная. Главное, чтоб не было одинаковых идентификаторов, дабы путаниц и ошибок не возникало. Иногда бывают такие ситуации, что действительно надо, чтоб разные функции меняли значение одной глобальной переменной. Однако это сугубо моё имхо
Cold_Night вне форума Ответить с цитированием
Старый 11.04.2010, 00:05   #32
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Круглое носим, квадратное катаем, зато по фэншую )

Это как в игре футбол. Ведь намного легче руками занести мяч в ворота, однако это был бы не футбол. Так и ЯП. Сделайте мне такой футбол, чтобы я мог отправлять мяч в ворота бандеролью не поднимаясь со скамейки )
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 11.04.2010 в 00:12.
mutabor вне форума Ответить с цитированием
Старый 11.04.2010, 08:50   #33
svbezm
Форумчанин
 
Регистрация: 02.04.2010
Сообщений: 104
По умолчанию

фень-шуй не фень-шуй ... , а организация приоритетов доступа на изменение глобальных переменых необходима.
Этим должны заниматься головная (родительская) функция
(в СИ это main()) .
По крайней мере , когда различные части проекта пишут разные люди...
Вообще эта проблема решается в различных языках программирования.
Mожно поглядеть Help
svbezm вне форума Ответить с цитированием
Старый 11.04.2010, 11:14   #34
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,646
По умолчанию

Есть 2 подхода организации доступа к глобальным переменным:
1. Глобальные переменные по умолчанию доступны во всех подпрограммах (типа, как в Паскале).
2. Если подпрограмма хочет использовать глобальную переменную, она должна явно указать, какие переменные ей нужны (типа, как в PHP).
Так же кроме локальных переменных полезными могут оказаться статические переменные.
Arigato вне форума Ответить с цитированием
Старый 12.04.2010, 09:13   #35
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Не знаю, по-пойму использование глобальных переменных уменьшает гибкость программы. Наверное не надо этим злаупотреблять, ну а старательно избегать, это уже паранойя
Altera вне форума Ответить с цитированием
Старый 12.04.2010, 09:23   #36
crazy horse
ios developer
Старожил
 
Аватар для crazy horse
 
Регистрация: 16.11.2007
Сообщений: 2,885
По умолчанию

Цитата:
Мне кажется, следовало спросить "можно ли использовать глобальные переменные?"
+1024! Первая же моя мысль.
Зачем? Ну зачем это делать? Хоть один довод, пожалуйста, чем это оправдано? Имхо это из разряда безусловных переходов в яву.
Делайте что хотите, но чтобы через полчаса в лесу было светло, сухо и медведь!

Последний раз редактировалось crazy horse; 12.04.2010 в 09:27.
crazy horse вне форума Ответить с цитированием
Старый 12.04.2010, 09:28   #37
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Гибкость программы уменьшают кривые руки )
Если я грамотно буду работать с глобальными переменными то результат работы от того не пострадает что они глобальные. А по поводу топика - Если программист сказал "Прикрутить пятое колесо зайцу" то компилятор должен спросить "В какое место?" а не запрещать с криками "Я на тебя Гринпис нацькую"
Цитата:
Хоть один довод, пожалуйста, чем это оправдано?
Опять таки гибкостью - глобальная переменная это как площадь в городе. Снеси все площади и общественные места что получишь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.04.2010, 09:49   #38
crazy horse
ios developer
Старожил
 
Аватар для crazy horse
 
Регистрация: 16.11.2007
Сообщений: 2,885
По умолчанию

Цитата:
Гибкость программы уменьшают кривые руки )
Пойду учить русский язык - не могу уловить смысл
Цитата:
Если программист сказал "Прикрутить пятое колесо зайцу" то компилятор должен спросить "В какое место?" а не запрещать с криками "Я на тебя Гринпис нацькую"
Насчет этого полностью согласен, но глобальные переменные - смертный грех. Если пришлось ее использовать, то пора садиться за учебники снова. IMHO. Я не беру в расчет языки низкого уровня, поскольку тут речь не о них идет.
Зы. Нормальный компилятор должен откомпилить все, но в режиме строгача матюгнуться: обратите внимание, тут вот у вас лажа по моему скромному.
Делайте что хотите, но чтобы через полчаса в лесу было светло, сухо и медведь!

Последний раз редактировалось crazy horse; 12.04.2010 в 09:55.
crazy horse вне форума Ответить с цитированием
Старый 12.04.2010, 10:34   #39
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Почему же смертный грех? Вот у меня например есть глобальная переменная, в которую записывается путь к папке исполняемово файла, что бы постоянно не вызывать extractfilepath(application.exename ). И ничего незаконного здесь не вижу.
Altera вне форума Ответить с цитированием
Старый 12.04.2010, 10:53   #40
crazy horse
ios developer
Старожил
 
Аватар для crazy horse
 
Регистрация: 16.11.2007
Сообщений: 2,885
По умолчанию

Потому, что такие вещи принято записывать в свойства класса, который занимается общением с периферией. Тогда уж давайте и счетчики циклов в глобальных переменных хранить. А что, очень удобно и ничего противоестественного
У тебя же динамически берется этот путь во время выполнения программы? Ну и кто мешает упрятать всю эту логику вместе с переменными в один отдельный класc, чтоб глаза не мозолили?
Делайте что хотите, но чтобы через полчаса в лесу было светло, сухо и медведь!

Последний раз редактировалось crazy horse; 12.04.2010 в 10:58.
crazy horse вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
присвоить из бд переменным akimov_aleks БД в Delphi 6 07.04.2010 08:24
Построение графиков функций С++ (методы аппроксимации функций) amdbodia Общие вопросы C/C++ 0 24.05.2009 15:28
использование функций в качестве параметров других функций mono Помощь студентам 0 20.04.2009 18:25
проблема с глобальным объектом Selebro Общие вопросы C/C++ 3 26.11.2008 20:22
Доступ к переменным RealSHELS Общие вопросы Delphi 4 15.06.2008 13:14