如何在preprecessor命令ifndef
中使用目录示例
#ifndef DIR/HEADERFILE_H
#include "dir/headerfile.h"
#endif
答案 0 :(得分:1)
正如in this question所解释的那样,宏和常量名称只允许使用字母数字字符和下划线(a-z
,A-Z
,0-9
和_
)。您可以定义自己的常量,将/
替换为_
:
#ifndef DIR_HEADERFILE_H
答案 1 :(得分:1)
要回答特定问题,您不能在#ifndef
等预处理程序命令中使用目录。
头文件中的包含警戒通常采用
形式#ifndef DIRECTORY_HEADERFILE_INCLUDED
#define DIRECTORY_HEADERFILE_INCLUDED
//.... contents
#endif
要包含标题,请使用
#include "dir/headerfile.h"
很久以前,有些人提出双重包括警卫,或多余包括警卫,其中你在#include
行前检查以加快速度,如question所述。 c2 wiki还有一些进一步的信息。
“好的编译器不需要这个成语。”
在任何一种情况下,tendacny都使用_
而不是/
来形成有效的宏。