Форум: "Прочее";
Текущий архив: 2009.09.20;
Скачать: [xml.tar.bz2];
ВнизВопрос по препроцессору С Найти похожие ветки
← →
DVM © (2009-07-20 23:56) [0]В последнее время читая исходники на Си уже несколько раз натыкался у разных авторов исходников на записи следующего вида:
...
#if 0
...
#endif
...
Что это? Это такой извращенческий способ закомментировать часть кода?
← →
Jukadze (2009-07-21 00:06) [1]Однажды ночью Токусан пришел к Рютану за наставлениями. Когда он получил их, Рютан сказал: — Уже поздно. Тебе пора идти.
Токусан поклонился, поднял штору и вышел. Увидев, что на улице темно, он вернулся со словами:
— Там уже темно.
Рютан зажег фонарь и протянул его Токусану. Когда тот протянул руку, чтобы взять фонарь, Рютан задул свечу. Токусан достиг просветления, поклонился и вышел.
← →
Дмитрий С © (2009-07-21 06:36) [2]ИМХО разница в том, что, грубо говоря, обычный комментарий "серенький", а код, закоментированный вышеуказанным способом, будет подсвечен по правилам синтаксиса в среде разработке.
← →
palva © (2009-07-21 08:14) [3]Такая мысль пришла:
Если какой-то участок кода постоянно приходится то включать, то отключать, то можно делать это меняя всего один символ.
← →
жж (2009-07-21 08:26) [4]Поясните
а препроцессор Си как-либо принципиально отличается от делфийского?
← →
Anatoly Podgoretsky © (2009-07-21 08:39) [5]> жж (21.07.2009 08:26:04) [4]
Конечно различается, у Дельфи нет препроцессора.
← →
brother © (2009-07-21 09:40) [6]> Если какой-то участок кода постоянно приходится то включать,
> то отключать, то можно делать это меняя всего один символ.
а если проще? : {DEFINE DEBUG} например. ё?)
← →
brother © (2009-07-21 09:42) [7]те $DEFINE конечно)
← →
brother © (2009-07-21 09:46) [8]> а препроцессор Си как-либо принципиально отличается от
> делфийского?
процессор = компилятор?
← →
palva © (2009-07-21 09:54) [9]
> а если проще?
В каких-то случаях проще. Если участков очень много и они разбросаны по проекту, то одновременное их включение/выключение, конечно, проще обеспечить при помощи #define. Правда здесь приходится править не один символ. А вот если у меня есть три варианта вычисления одного и того же, и я еще не решил, какой их них лучше, да еще пытаюсь их оптимизировать и тестировать на скорость, то проще их расположить рядом в одном модуле и включать один из них простым перебросом нуля в единицу.
← →
palva © (2009-07-21 10:01) [10]
> процессор = компилятор?
Препроцессор проделывает предварительную обработку исходника перед компиляцией. Его логика существенно отличается от логики языка си. При желании сишный препроцессор можно приспособить для обработки паскальных программ. В реальности тот же препроцессор используется для обработки текстовых ресурсов, язык описания которых сильно отличается от си.
← →
test © (2009-07-21 10:05) [11]жж (21.07.09 08:26) [4]
m4 + wiki
Керниган и сотоварищи, его придумали немного позже чем Вирт написал Pascal.
← →
palva © (2009-07-21 10:09) [12]
> позже чем Вирт написал Pascal.
Только в паскале Вирта не было препроцессора.
← →
test © (2009-07-21 10:14) [13]palva © (21.07.09 10:09) [12]
m4 придумали Керниган и сотоварищи, на нем как раз и держиться препроцессор.
← →
Sergey (2009-07-21 15:38) [14]Если отключаемый код внутри себя содержит много комментариев, такой способ наиболее удобен. От вложенных комментариев, препроцессорам плохо бывает.
← →
test © (2009-07-21 16:00) [15]Sergey (21.07.09 15:38) [14]
Это как? Компилятор игнорит коментарий, в машинный код уходит код без коментов, а как сильно вложенными комментами ранить тонкую душевную гармонию процессора?
← →
Palladin © (2009-07-21 16:05) [16]
> [15] test © (21.07.09 16:00)
какого еще процессора?
← →
test © (2009-07-21 16:14) [17]Palladin © (21.07.09 16:05) [16]
Прочитал препроцессор как процессор, удивился, переспросил.
← →
Игорь Шевченко © (2009-07-21 16:20) [18]
> От вложенных комментариев, препроцессорам плохо бывает
так рождаются мифы
← →
pasha_golub © (2009-07-21 16:48) [19]Это просто альтернатива комментариям, как (* *) в паскале. Tока сохраняется раскраска синтаксиса :)))
Эт мне так друг-сишник сказал
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2009.09.20;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.004 c