Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Доки по стилю программирования


Автор: Nastya 25.4.2005, 14:48
Срочно нужна дока, где умно, длинно и смачно smile описывается почему не стоит использовать глобальные переменные
Чем многотомнее труд, тем лучше smile

Автор: En_t_end 25.4.2005, 15:36
Я для себя увидел только две причины, по которым не стоит их юзать.
1. Испытываю трудности в компиляции, в частности, ошибки многоразового включения.
2. Жрут память. Ведь существуют от запуска приложения, до его шутдауна.

Автор: Nastya 25.4.2005, 17:41
Нет, мне нужно, нечто научное, потому как мое (я так думаю не катит), вот например, книжка Дейсктры или Страуструпа, или что-то в этом роде очень подошло бы smile
Добавлено @ 17:41
И еще желательно с доказательстввами, что без них можно обойтись

Автор: batigoal 25.4.2005, 17:51
Цитата(Nastya @ 25.4.2005, 17:41)
И еще желательно с доказательстввами, что без них можно обойтись

Лучшим доказательством этого тезиса является язык Java smile

Автор: CHi 25.4.2005, 19:59
http://anatolix.naumen.ru/Books/CPPCodingStandars?v=12ti, http://anatolix.naumen.ru/Books/ExceptionalCPP?v=pix, http://anatolix.naumen.ru/Books/ModernCPPDesign?v=16g9, http://anatolix.naumen.ru/Books/MoreEffective?v=onr, http://anatolix.naumen.ru/Books/EfficientCPP?v=156i, http://zwb2.narod.ru/ebooks/cpprules.pdf, http://it-books.narod.ru/C_CPP/CppForRealProgrammers_rus.rar and http://www.accu.org/bookreviews/public/reviews/0hr/advanced_c__.htm.

Автор: Void 25.4.2005, 19:59
Цитата(Nastya @ 25.4.2005, 19:41)
Нет, мне нужно, нечто научное, потому как мое (я так думаю не катит), вот например, книжка Дейсктры или Страуструпа, или что-то в этом роде очень подошло бы smile

Ну Страуструпа, так Страуструпа... Берем "The C++ Programming Language", 3rd SE, жмем Ctrl-F и ищем "global variables". Не так много совпадений, кстати...

Global variables that are local to a single compilation unit are a common source of confusion and are best avoided. - Глобальные переменные, которые локальны для данной единицы трансляции являются частым источником ошибок, и без них часто можно обойтись. (Да, disclaimer, за перевод не пинать smile )

It is generally best to minimize the use of global variables and in particular to limit the use of global variables requiring complicated initialization. - Лучше всего минимизировать использование глобальных переменных, в частности, переменных, требующих сложной инициализации.

There is no way of catching exceptions thrown during initialization of global variables. [...] This is another reason to avoid global variables whenever possible. - Нет никакой возможности отловить исключения, выброшенные при нициализации глобальных переменных. [...] Это еще одна причина, чтобы избегать глобальных переменных, когда только это возможно.

И так далее в таком же духе...

Conslusion: использовать можно, только осторожно smile

Автор: Nastya 26.4.2005, 08:30
Ребята, спасибо огромное.

Автор: AISIN 27.4.2005, 17:30
Цитата(Nastya @ 25.4.2005, 17:41)
Нет, мне нужно, нечто научное, потому как мое (я так думаю не катит), вот например, книжка Дейсктры или Страуструпа, или что-то в этом роде очень подошло бы smile
Добавлено @ 17:41
И еще желательно с доказательстввами, что без них можно обойтись

Лучшее доказательство это написание работающих программ без глобальных переменных! Хотя в некоторых случаях они могут оказаться
полезными!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)