2016-11-07 2 views
-2

Как я могу использовать каталог в команде preprecessor IfNDef#ifndef КАТАЛОГ HEADERFILE не найден

Пример

#ifndef DIR/HEADERFILE_H 
#include "dir/headerfile.h" 
#endif 
+1

Использовать символ, который позволяет препроцессор? '#ifndef DIR_HEADERFILE_H' –

+0

Что вы пытаетесь достичь? Препроцессор понимает текст, а не структуры каталогов? После того, как файл был '# included'd, он не имеет имя файла/каталог #defined. – doctorlove

+0

ОЧЕНЬ ИНТЕРЕСНО, ПОЧЕМУ Я ПРИЧИНАЮ -2? НЕКОТОРЫЕ ЗАМЕЧАНИЯ? –

ответ

1

Чтобы ответить на этот вопрос specicif, вы не можете использовать каталог в команде препроцессора как #ifndef.

включаемой стражников в файле заголовка часто принимают форму

#ifndef DIRECTORY_HEADERFILE_INCLUDED 
#define DIRECTORY_HEADERFILE_INCLUDED 

//.... contents 

#endif 

Чтобы включить заголовок, а затем просто использовать

#include "dir/headerfile.h" 

Давным давно некоторые люди suugested двойной включают охрану, или избыточное включает в себя охрану, в котором вы проверили перед линией #include, чтобы ускорить процесс, как указано в этом question. c2 wiki содержит дополнительную информацию.

«Хорошие компиляторы делают это идиома ненужным.»

В любом случае tendacny является использование _ вместо /, чтобы сформировать правильный макрос.

1

Как объяснено in this question, только буквенно-цифровые символы и знаки подчеркивания (a-z, A-Z, 0-9 и _) разрешены для имен макросов и констант. Вы можете определить свою собственную постоянную заменяющий / с _:

#ifndef DIR_HEADERFILE_H 

 Смежные вопросы

  • Нет связанных вопросов^_^