C++ #未找到ifndef目录头文件

C++ #未找到ifndef目录头文件,c++,include,c-preprocessor,C++,Include,C Preprocessor,如何在预处理器命令ifndef中使用目录 示例 #ifndef DIR/HEADERFILE_H #include "dir/headerfile.h" #endif 如上所述,宏和常量名称只允许字母数字字符和下划线(a-z、a-z、0-9、和)。您可以定义自己的常量,将/替换为。: #ifndef DIR_HEADERFILE_H 要回答specicif问题,您不能在像\ifndef这样的预处理器命令中使用目录 头文件中的include-guard通常采用以下形式 #ifndef DI

如何在预处理器命令ifndef中使用目录

示例

#ifndef DIR/HEADERFILE_H 
#include "dir/headerfile.h"
#endif
如上所述,宏和常量名称只允许字母数字字符和下划线(
a-z
a-z
0-9
、和
)。您可以定义自己的常量,将
/
替换为

#ifndef DIR_HEADERFILE_H 

要回答specicif问题,您不能在像
\ifndef
这样的预处理器命令中使用目录

头文件中的include-guard通常采用以下形式

#ifndef DIRECTORY_HEADERFILE_INCLUDED
#define DIRECTORY_HEADERFILE_INCLUDED

//.... contents

#endif
要包含标题,请简单使用

#include "dir/headerfile.h"
很久以前,一些人提出了一种双包含保护,或者冗余包含保护,您在
#include
行之前进行了检查,以加快速度,如本文所述。有一些进一步的信息,特别是

“好的编译器使这个习惯用法变得不必要。”


在这两种情况下,倾向于使用
\uuu
而不是
/
,以形成有效的宏。

是否使用预处理器允许的字符<代码>\ifndef DIR\u HEADERFILE\u H您想要实现什么?预处理器理解文本而不是目录结构?一旦一个文件被
#包含
d,它就没有定义文件名/目录。这很有趣,为什么我得到-2?先说几句?