Немного про Comment - страница 3

 

Core 2 Quadro Q6600 2.4 GHz

Видео ASUS x1300



 
Integer писал (а) >>

С выводом в комментарий: Завершено за 221079 ms

Если вместо комментария x++: Завершено за 16 ms

Что ж такое у меня?

 
 
Renat писал (а) >>

Вот и объяснение - на встроенных видеокартах функции отрисовки экрана тормозят из-за отсутствия аппаратной ускорения.

>Видеокарта AGP Radeon 7000. 



 
stringo писал (а) >>

Зачем условная компиляция и зачем что-то вырубать, если есть функция IsTesting()?

Если же ВАМ распринтовка нужна будет и в тесте, Вам прийдется пробежаться по коду и поправить


если будет услованая, достаточно поправить в одном месте


если будет условная то код будет такой

----------------

// для компиляции под тест


#define PRINTX 1

#if PRINTX 1

Print( " "+x1+" "+x2);

#



т е в код компилируется Print

------------

в боевой версии

#define PRINTX 0

#if PRINTX = 1


#end if

т е в код ничего не компилируется

---

т е очевидно что в боевой версии вообще нет никакой проверки и следовательно код чище и быстрее

это примитивный пример, ведь условная компиляция может помочь не только в этом

----

конечно можно натыкать IsTesting() ... но работать оно будет только при тесте, но и в коде будет куча проверок IsTesting()

---

 

YuraZ, всё это реализуется так же просто и без условной компиляции. Достаточно завести специальную переменную и менять ей значение.

int PRINTX=0;
...
if(PRINTX==1)
  {
   ...
  }

Вас волнует то, что код таки будет компилироваться? Вам хочется правильного Си? Чтобы ничего лишнего не компилировалось?

Условная компиляция - это пережиток тех времён, когда винчестеры были маленькие, дискеты - большие, а компакт-дисков вообще не было.

Условная компиляция - это костыль для аппаратно/системно-зависимых модулей.

Условная компиляция - это безусловное зло, потому что позволяет не компилировать (читай синтаксически и семантически анализировать) рабочие куски кода.

А код чище делает не условная компиляция, а ясные мысли и правильные навыки разработчика.

 
stringo писал (а) >>

YuraZ, всё это реализуется так же просто и без условной компиляции. Достаточно завести специальную переменную и менять ей значение.

Вас волнует то, что код таки будет компилироваться? Вам хочется правильного Си? Чтобы ничего лишнего не компилировалось?

да.

в бинарный - выполняемый - файл

---

переменная это тоже своего рода выход... будет лишняя проверка конечно

в вашем варианте код будет ничем не лучше, чем при коде с директивами условной компиляции

правда в вашем случае:

в конечный выполняемый модуль будет включен никому не нужный и никогда не работающий участок кода...

( так что Вариант с переменной можно считать своего рода ЗЛОМ )


а с условной компиляцией НИЧЕГО ЛИШНЕГО НЕ БУДЕТ в готовом коде

условная компиляция не включит ЛИШНЮЮ проверку, и не включит код который не нужен!

---

зло это или не зло, это вопрос риторический

---

какой подход - навык из них более правильный зависит от того что Вы желаете на выходе

Вы про код исходный, я про код бинарный

--------------------------------------------------------------------------

--- ясные мысли они при любом подходе делают код чище

я понимаю что Вам не нравится условная компиляция... :-) но это не означает что это ЗЛО...





 
YuraZ писал (а) >>
я понимаю что Вам не нравится условная компиляция... :-) но это не означает что это ЗЛО...

Правильно, Юра! ЗЛО существует только в голове конкретного человека. В голове другого человека этого зла может и не быть. Всё зависит от отношения, от важностей...

 

Понятия Зло и добро придумал человек, и они работают только в нашем обществе

при том что у каждого свои рамки между злом и добром..

 
scorpionk писал (а) >>
у каждого свои рамки между злом и добром..

не только рамки между... но и вообще сами категории... Например, что русскому хорошо, то немцу смерть. Тут одна и та же вещь является одновременно и добром, и злом.