Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
6-1206897457
prostoi
2008-03-30 21:17
2009.09.20
Proxy


2-1247663350
Mishenka
2009-07-15 17:09
2009.09.20
Источник данных при соединении Delphi и Oracle черезm ADO........


8-1197293016
Klim
2007-12-10 16:23
2009.09.20
Работа с PNG


1-1215268868
AlexNe
2008-07-05 18:41
2009.09.20
Тихо умирающее приложение


2-1248094465
MAX
2009-07-20 16:54
2009.09.20
из Word в БД





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский