在C中包含Guard问题(编译器仍报告重新定义错误)

问题描述 投票:0回答:1

AS标题说我在使用include防护时遇到问题。我不确定我是否正确使用了它们,因此我已经检查了几篇相关的文章,它们都包含与我相同的代码。请告知我我使用包含防护有什么问题。

对于上下文,我有几个要在其他程序中使用的头文件,因为这多个文件包含相同的依赖头(链接表文件),这就是问题所在。即使我似乎有include防护,编译器仍然报告该代码具有重新定义错误。以下是无法使用的包含防护。

 #ifndef UNI_LINKED_LIST_LIB_H
 #define UNI_LINKED_LIST_LIB_H "uniLinkedListLibV02.h"
 #include UNI_LINKED_LIST_LIB_H
 #endif

我的理解是,如果我尝试多次包含此标头,则#ifndef将返回false。在第一个include中,它应该定义UNI_LINKED_LIST_H,然后包括该库。

c include include-guards
1个回答
0
投票

这就是您所需要的:

 #ifndef UNI_LINKED_LIST_LIB_H
 #define UNI_LINKED_LIST_LIB_H 
 rest of code goes here
 #endif

您只需要定义UNI_LINKED_LIST_LIB_H,该值无关紧要。

© www.soinside.com 2019 - 2024. All rights reserved.