Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Alex Astafiev                        2:5000/228.16  25 May 2002  02:52:27
 To : Alexey Shirshin
 Subject : Пpинципы кодиpования
 -------------------------------------------------------------------------------- 
 
 
  AS> Глобальные пеpеменные - нy их нафиг. Потом не понять как все это
  AS> pаботает. Вчеpа ковыpял исходник на С в нескольких файлах. Хpень
  AS> такая, что создается впечатление о особом стиле таких пpогpаммистов -
  AS> написать пpогpаммy, чтоб ее алгоpитм был неочевиден даже самомy
  AS> написавшемy. Хоpошо там нет гото, зато все в глобальных пеpеменных,
  AS> каждая из котоpых описана в своем модyле, и в одной фyнкции могyт
  AS> использоваться несколько из них.  Помоемy по сложности сопpовождения,
  AS> что глобальная пеpеменная, что опеpатоp гото. Как я понимаю, все
  AS> сейчас говоpят, гото - ни-ни, нельзя, не кошеpно. А пpо глобальные -
  AS> да пyсть, yдобно. Это ли не yдивительно?
 
 Ты все верно сказал,
 
 но это опять все ерундистика. Это, все-таки, смотря КАК
 применять goto и глоб.перем.
 Если ты будешь делать код из одних goto, то конечно так лучше не делать,
 но вот умное применение goto всегда экономит мне большое количество
 if()  while() else...
 также и глобальные переменные - вообще-то в си любая переменная обьявленая без
 static является глобальной (по заумному - имеет external linkage).
 Так что ,если мудро, всегда в одном месте собирать глобальные переменные -
 то почему нет? Я, скажем, всегда так делаю. И прекрасно обхожусь глобальными
 переменными. Если они глобальны для "модуля"  (c-файл плюс соотв. хедер),
 то я обьявляю их как static, если глобальны для программы - выношу в хедер.
 Передача больших обьемов данных через функции имеет еще один минус -
 начинается "протяжка" данных компилятором, ибо передача параметров (хотя бы
 одного указателя) через стек хоть и совсем мало стоит, но не бесплатна.
 Hо тут тоже, лучше не увлекаться "глобализацией", а то чревато... ;)
  AS> ЗЫ. А, забыл. Там еще макpос на макpосе и в макpосе. :)
 :-)))))))))))))))))
 
 если хотите экстремализма, вы посмотрите такую вещь как исходники компилятора
 GNU C++  или недавно доступного в виде OpenSource компилятора Watcom.
 
 ---
  * Origin: Alex Raider/ Flash inc. 1992-2002 (2:5000/228.16)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Пpинципы кодиpования   Alexey Shirshin   22 May 2002 19:58:31 
 Пpинципы кодиpования   Alex Astafiev   24 May 2002 03:51:09 
 Пpинципы кодиpования   Alexey Shirshin   24 May 2002 08:33:13 
 Пpинципы кодиpования   Alex Astafiev   25 May 2002 02:52:27 
 Re: Пpинципы кодиpования   Andrey Belyakov   24 May 2002 13:31:56 
 Пpинципы кодиpования   Alex Cvetkov   28 May 2002 22:10:20 
 Пpинципы кодиpования   Mike Roschin   13 Jun 2002 22:15:03 
 Re: Пpинципы кодиpования   Andrey Belyakov   14 Jun 2002 11:17:26 
 Пpинципы кодиpования   Mike Roschin   14 Jun 2002 19:59:30 
 Пpинципы кодиpования   Alex Cvetkov   15 Jun 2002 00:25:32 
 Re: Пpинципы кодиpования   Andrey Belyakov   16 Jun 2002 02:34:40 
 Пpинципы кодиpования   Alex Cvetkov   18 Jun 2002 02:30:02 
 Пpинципы кодиpования   Comoderator Of Ru Algorithms   18 Jun 2002 17:03:52 
 Re: Пpинципы кодиpования   Anatoly Svishev   15 Jun 2002 02:18:20 
 Re: Пpинципы кодиpования   Andrey Belyakov   16 Jun 2002 02:36:44 
 Re: Пpинципы кодиpования   Ruslan Shevelyov   16 Jun 2002 12:35:43 
 Re: Пpинципы кодиpования   Igor Zakhrebetkov   17 Jun 2002 11:17:04 
 Re: Пpинципы кодиpования   Ruslan Shevelyov   19 Jun 2002 12:42:44 
 Re: Пpинципы кодиpования   Alexey Haustov   19 Jun 2002 19:52:38 
 Re: Пpинципы кодиpования   Dmitriy Kazimirow   08 Sep 2002 09:41:46 
 Пpинципы кодиpования   Eugeny Dzhurinsky   15 Sep 2002 00:56:30 
 Пpинципы кодиpования   Alex Cvetkov   16 Jun 2002 01:14:02 
 Re: Пpинципы кодиpования   Ruslan Shevelyov   15 Jun 2002 14:45:59 
Архивное /ru.algorithms/174643cef0d2f.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional