Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2012, 13:34   #1
KOPEIII
 
Регистрация: 05.04.2012
Сообщений: 4
Вопрос Деректива #deifne

Всем доброго времени суток! Я изучал C++, в нём мало внимания уделяется директивам препроцессора в отличии от C. Мне в книги попался такой момент:
Код:
#define	SHUT_RD
не могу понять что она делает, на сколько я знаю #define используется как аналог const. Подскажите, кто знает, что в данном случае делает эта директива?
KOPEIII вне форума Ответить с цитированием
Старый 13.04.2012, 14:55   #2
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

#define X Y говорит препроцессору заменить все встречающиеся в коде X на Y перед тем, как передать код компилятору. #define X просто объявляет X в препроцессоре, в коде вместо него ничего не подставляется.

Код:
#ifdef X
...
#endif
то, что внутри условия, будет включено в код только если X было объявлено директивой #define

Код:
#ifndef X
...
#endif
то, что внутри условия, будет включено в код только если X не было объявлено директивой #define

#undef X - разобъявляет X =)

такие штуки применяются, чтобы указать, какие части кода следует включать в программу. в частности, так защищают код от повторного включения:
Код:
#ifndef MY_HEADER
#define MY_HEADER
...
#endif
когда препроцессор видит эти директивы в первый раз, MY_HEADER еще не объявлено и этот код включится в результирующий, и будет объявлена MY_HEADER. при попытке повторного включения этого файла MY_HEADER уже будет объявлена и код просто пропустится.
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Деректива Oracle D-mon SQL, базы данных 1 24.05.2008 12:02