Почему #ifndef и #define используются в заголовочных файлах C ++?

Я видел код, подобный этому, обычно в начале заголовочных файлов:

#ifndef HEADERFILE_H
#define HEADERFILE_H

И в конце файла

#endif

Какова цель этого ?

441
задан Brad Solomon 25 July 2019 в 01:41
поделиться

1 ответ

Их называют ifdef или включают защиту.

При записи небольшой программы это могло бы казаться, что это не нужно, но поскольку проект растет, Вы могли намеренно или неумышленно много раз включать один файл, который может привести к компиляции, предупреждающей как переменная, уже объявленная.

#ifndef checks whether HEADERFILE_H is not declared.
#define will declare HEADERFILE_H once #ifndef generates true.
#endif is to know the scope of #ifndef i.e end of #ifndef

, Если не объявляется, что означает, #ifndef генерирует верный тогда только часть между #ifndef и #endif, выполняемым иначе нет. Это предотвратит от нового объявления идентификаторов, перечислений, структуры, и т.д.

0
ответ дан Mohit Jain 17 September 2019 в 07:00
поделиться
  • 1
    Не обязательно - опция была бы к , расширяют CI с помощью Вашей собственной Библиотеки Сессии, которая допускает прямой доступ к flashdata после it' s набор. – Repox 28 October 2012 в 14:45