为了账号安全,请及时绑定邮箱和手机立即绑定

我应该在标题中使用#include吗?

我应该在标题中使用#include吗?

C C++
拉丁的传说 2019-07-02 10:33:02
我应该在标题中使用#include吗?有必要#include某些文件,如果在标题(*.h)中,使用在该文件中定义的类型?例如,如果我使用glib并希望使用gchar在我的标题中定义的结构中的基本类型,是否需要执行#include <glib.h>知道我已经把它放在我的*.c文件里了吗?如果是的话,我也必须把它放在#ifndef和#define或在#define?
查看完整描述

3 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

一个好的做法是,只有在包含文件需要时,才将#include放在包含文件中。如果给定包含文件中的定义仅在.C文件中使用,则只将其包含在.C文件中。

在您的示例中,我将它包含在#ifdef/#endif之间的include文件中。

这将最小化依赖项,这样如果包含文件更改,不需要给定包含的文件就不必重新编译。


查看完整回答
反对 回复 2019-07-02
?
温温酱

TA贡献1752条经验 获得超4个赞

在编译过程中,预处理器只是用指定的文件内容替换#include指令。为了防止无止境的循环,它应该使用

#ifndef SOMEIDENTIFIER#define SOMEIDENTIFIER....header file body........#endif

如果某个头被包含到另一个包含到您的文件中的头中,则不需要再次显式地包含它,因为它将递归地包含到文件中。


查看完整回答
反对 回复 2019-07-02
  • 3 回答
  • 0 关注
  • 467 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信