【发布时间】:2020-04-21 23:56:05
【问题描述】:
正如标题所说,我在使用包含防护时遇到问题。我不确定我是否正确使用它们,所以我已经检查了几个相关的帖子,它们都包含似乎与我相同的代码。请告诉我我使用包含守卫有什么问题。
对于上下文,我有几个我希望能够在其他程序中使用的头文件,因为这多个文件包含相同的依赖项头(一个linkedList 文件),这就是问题出现的地方。即使我似乎有包含守卫,编译器仍然报告代码有重新定义错误。下面是不起作用的包含防护。
#ifndef UNI_LINKED_LIST_LIB_H
#define UNI_LINKED_LIST_LIB_H "uniLinkedListLibV02.h"
#include UNI_LINKED_LIST_LIB_H
#endif
我的理解是,如果我尝试多次包含此标头,#ifndef 将返回 false。并且在第一个包含它应该定义 UNI_LINKED_LIST_H 然后包含库。
【问题讨论】:
-
如果保护是针对您尝试包含的
.h文件,请不要尝试定义保护变量。将您显示的所有内容替换为简单的:#include "uniLinkedListLibV02.h"。包含的文件有责任处理 其 保护变量 -
这是我不知道的。谢谢。
标签: c include include-guards