[P&AM Lab] Echo.c
Grigoriy A. Sitkarev
sitkarev на komitex.ru
Пн Дек 6 23:55:01 MSK 2010
Для примера, файл test.c, компилируйте с -DPRINT_MESSAGE и без, и
посмотрите что будет. Попробуйте также задать символ для препроцессора
через define в самом начале файла (после заголовков):
#define PRINT_MESSAGE
$ gcc -Wall -o test test.c
и
$ gcc -Wall -DPRINT_MESSAGE -o test test.c
Для препроцессора директивы if и ifndef соответственно проверка на то
установлен ли такой символ или нет (if not defined). Там можно
использовать и логическое НЕ, также как и в языке Си.
#if !PRINT_MESSAGE
Думаю теперь понятно зачем это нужно. Хотя вообще считается что
использовать условную компиляцию нужно очень аккуратно, она затрудняет
читаемость программы. Кроме того, получается что в одной программе их
фактически две (или больше).
--
Г.А.
Борис Липин пишет:
> Григорий Александрович, здравствуйте.
> Возникла пара вопросов в процессе разбора сорсов echo. Основной алгоритм вроде бы понятен, но пара строчек всё же вызывает вопросы.
> Совсем не понятно что значит строка: #if !ENABLE_FEATURE_FANCY_ECHO
> и зачем вообще нужно было вводить ветвления #if.... #else...#endif.
----------- следущая часть -----------
A non-text attachment was scrubbed...
Name: test.c
Type: text/x-csrc
Size: 165 bytes
Desc: отсутствует
URL: <http://amplab.syktsu.ru/pipermail/lab/attachments/20101206/2b5b09a2/attachment.c>
Подробная информация о списке рассылки Lab