По-видимому, существует много разнообразия в мнениях, начиная от «Никогда! Всегда инкапсулируйте (даже если это просто макрос!)« до »Это неважно - используйте их, когда это удобнее, чем нет "Когда можно использовать глобальную переменную в C?
So.
Конкретные, конкретные причины (желательно с примером)
- Почему глобальные переменные опасны
- Когда глобальные переменные должны быть использованы вместо альтернатив
- Какие альтернативы существуют для тех, кто соблазн неправильно использовать глобальные переменные
Хотя это субъективно, я выберу один анвс er (что для меня лучше всего представляет отношения любви/ненависти, которые каждый разработчик должен иметь с глобалами), и сообщество будет голосовать за них чуть ниже.
Я считаю, что для новичков важно иметь такую ссылку, но, пожалуйста, не загромождайте ее, если существует другой ответ, который по существу похож на ваш - добавьте комментарий или отредактируйте чужой ответ.
-Adam
Хотя я не согласен, имейте в виду, что здесь сосредоточен C - нет классов. Можете ли вы показать, как реализовать синглтон в C? Одним из основных преимуществ программирования OO является C-тип такого дизайна ... – 2008-10-06 20:53:34
Синглтоны не являются ответом на глобальные переменные, они позволяют программистам изменять стиль декларации в то же время ленивый (плохой) с пожизненное управление. Синглтоны вызывают у меня больше проблем, чем глобальные переменные. – Torlack 2008-10-06 20:56:59
@Adam Davis: функция, которая возвращает экземпляр, который хранится в глобальной переменной с областью файлов? Хотя я не уверен, что мне это нравится лучше, чем простая глобальная переменная. – aib 2011-08-04 16:23:43