在另一个头文件中包含标头

我在.h文件中定义了一个struct item 。 现在我在另一个.h中定义另​​一个struct tPCB ,它是同一个项目的一部分,我需要tPCB才能有一个item 。 我认为只是制作相同的TurboC项目的一部分将允许我在另一个头文件中使用item,但编译器会抛出“ undefined type: ite ”。

我想我不得不在第二个包含第一个标题,但是我已经看到了相同的代码,但没有这样做。

除了添加#include行以使其工作之外,还有其他方法吗?

如果你的.c #include包含正确顺序的两个.h文件,它将起作用。 这可能就是你记得的情况。 最安全的方法是#include定义依赖关系的每个文件,并依赖每个.h中的包含保护来防止事物被多重定义。

永远不要在头文件中放置变量定义(即分配它们)。 这有很多不同的原因,其中两个主要原因是程序设计不佳以及链接器错误泛滥。

如果需要全局公开变量(实际上不需要这么做的情况),那么在h文件中将其声明为extern并将其分配到相应的C文件中。

你需要使用#include。 在C中,一切都是明确的; 不要指望它能通过魔法发挥作用。

抱歉,在C中你无法访问结构的定义,在另一个头文件中没有包含该文件(通过#include)。 #include说明如下。

因此,假设包含项结构定义的头文件称为“item.h”,并且头文件包含“tPCB.h”中tPCB结构的定义。 在tPCB.h的顶部,您应该输入以下语句:

 #include "item.h" 

这应该让tPCB.h文件访问item.h中的所有定义。

在“另一个.h”中, #include

阐述:

在定义struct tPCB的文件中,您需要#include定义struct item的文件。