Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Идентификаторы или что?


Автор: Team 4.6.2006, 02:03
Новичёк учит С++ к экзамену, никак не может понять зачем нужны 

#ifndef DEV_H
...
#endif

что то подазрительные команды, зачем нужны? smile  

Автор: MAKCim 4.6.2006, 08:35
это директивы условной компиляци препроцессора
читается так
если DEV_H не определен то
...
конец
его эквивалент
Код

#if ! defined DEV_H
...
#endif

судя по всему здесь они используются для предотвращения повторного включения .h файла
Код

#ifndef DEV_H
#define DEV_H
...
#endif
  

Автор: Сыр 4.6.2006, 08:36
Вообще-то новичок пропустил ещё одну строчку
Код

#ifndef DEV_H
#define DEV_H
...
#endif // DEV_H

Это стандартное окружение хедеров, чтобы код не включался несколько раз в один файл .cpp
Если костанта (типичная только для данного файла dev.h) не определена, то его включать (include) нужно, попутно определяя эту самую константу. Если теперь в другом месте встретится #include "dev.h", то в этом месте в модуль войдёт не содержимое файла, а пустое место, т.е. всё между #if и #endif будет пропущено.

Альтернатива -- #pragma once, но через константы лучше. 

Автор: MAKCim 4.6.2006, 08:39
Цитата

Альтернатива -- #pragma once

не все компиляторы это поддерживают 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)