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

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

有必要#include某些文件,如果在标题(*.h)中,使用在该文件中定义的类型?

例如,如果我使用glib并希望使用gchar在我的标题中定义的结构中的基本类型,是否需要执行#include <glib.h>知道我已经把它放在我的*.c文件里了吗?

如果是的话,我也必须把它放在#ifndef#define或在#define?


拉丁的传说
浏览 468回答 3
3回答

白衣染霜花

一个好的做法是,只有在包含文件需要时,才将#include放在包含文件中。如果给定包含文件中的定义仅在.C文件中使用,则只将其包含在.C文件中。在您的示例中,我将它包含在#ifdef/#endif之间的include文件中。这将最小化依赖项,这样如果包含文件更改,不需要给定包含的文件就不必重新编译。

温温酱

在编译过程中,预处理器只是用指定的文件内容替换#include指令。为了防止无止境的循环,它应该使用#ifndef&nbsp;SOMEIDENTIFIER#define&nbsp;SOMEIDENTIFIER....header&nbsp;file&nbsp;body........#endif如果某个头被包含到另一个包含到您的文件中的头中,则不需要再次显式地包含它,因为它将递归地包含到文件中。
打开App,查看更多内容
随时随地看视频慕课网APP