Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.09.20;
Скачать: CL | DM;

Вниз

Вопрос по препроцессору С   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.01 c
2-1247675904
Igor2010
2009-07-15 20:38
2009.09.20
компоненты ExcelApplication1 и ExcelWorksheet1


4-1216285879
Alex_C
2008-07-17 13:11
2009.09.20
Управление по COM порту нестандартного оборудования


3-1227085610
pavel_guzhanov
2008-11-19 12:06
2009.09.20
Странно зависает запрос.


2-1248066170
apic
2009-07-20 09:02
2009.09.20
контекстное меню


2-1247921743
Igor2010
2009-07-18 16:55
2009.09.20
организовать циклы нужно