[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