首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包括头文件

包括头文件
EN

Stack Overflow用户
提问于 2010-10-03 01:05:54
回答 3查看 340关注 0票数 1

我有一些关于头文件的问题(我说的是c,但我认为对于c++也是一样的),让我们假设我有一些my_ADT.c文件(在里面我有函数的实现和实际的代码),还有my_ADT.h在里面我有pointer for my struct Question:如果我使用ADT Set来实现代码,我是否需要在两个文件中都包含代码代码或者只包含< set.h >D9my_ADT.h and my_ADT.c >就足够了(在my_ADT.c中我有<代码>D10my_ADT >)提前谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-10-03 01:11:27

如果my_ADT.h包含在my_ADT.c文件中,那么您应该只在my_ADT.h中包含set.h

票数 1
EN

Stack Overflow用户

发布于 2010-10-03 01:40:40

有3种场景

  1. set.h只在my_ADT.h
  2. set.h中需要,在my_ADT.c
  3. set.h中才需要,在my_ADT.hmy_ADT.c
  4. set.h中都需要:-)

对于场景3)将#include "set.h"添加到文件my_ADT.h中,将事实添加到文档中,并将#include "my_ADT.h"添加到my_ADT.c中(使用适当的包含保护,将set.h也包含到C文件中不会有任何损失)。

对于场景2)仅在my_ADT.c中包含set.h

对于场景1)仅在my_ADT.h中包含set.h

票数 3
EN

Stack Overflow用户

发布于 2010-10-04 08:59:13

除了pmg回答之外,你必须知道避免#include问题的一个好方法是用一个预编译器指令包围所有的头文件,检查.h文件是否已经被包含。

代码语言:javascript
复制
#ifndef __my_ADT_header
#define __my_ADT_header
/*
 * your header declaration here
 */
#endif

这可以防止包含多个报头而导致错误

希望这能有所帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3846703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档