Как я могу использовать каталог в команде preprecessor IfNDef#ifndef КАТАЛОГ HEADERFILE не найден
Пример
#ifndef DIR/HEADERFILE_H
#include "dir/headerfile.h"
#endif
Как я могу использовать каталог в команде preprecessor IfNDef#ifndef КАТАЛОГ HEADERFILE не найден
Пример
#ifndef DIR/HEADERFILE_H
#include "dir/headerfile.h"
#endif
Чтобы ответить на этот вопрос specicif, вы не можете использовать каталог в команде препроцессора как #ifndef
.
включаемой стражников в файле заголовка часто принимают форму
#ifndef DIRECTORY_HEADERFILE_INCLUDED
#define DIRECTORY_HEADERFILE_INCLUDED
//.... contents
#endif
Чтобы включить заголовок, а затем просто использовать
#include "dir/headerfile.h"
Давным давно некоторые люди suugested двойной включают охрану, или избыточное включает в себя охрану, в котором вы проверили перед линией #include
, чтобы ускорить процесс, как указано в этом question. c2 wiki содержит дополнительную информацию.
«Хорошие компиляторы делают это идиома ненужным.»
В любом случае tendacny является использование _
вместо /
, чтобы сформировать правильный макрос.
Как объяснено in this question, только буквенно-цифровые символы и знаки подчеркивания (a-z
, A-Z
, 0-9
и _
) разрешены для имен макросов и констант. Вы можете определить свою собственную постоянную заменяющий /
с _
:
#ifndef DIR_HEADERFILE_H
Использовать символ, который позволяет препроцессор? '#ifndef DIR_HEADERFILE_H' –
Что вы пытаетесь достичь? Препроцессор понимает текст, а не структуры каталогов? После того, как файл был '# included'd, он не имеет имя файла/каталог #defined. – doctorlove
ОЧЕНЬ ИНТЕРЕСНО, ПОЧЕМУ Я ПРИЧИНАЮ -2? НЕКОТОРЫЕ ЗАМЕЧАНИЯ? –