在另一个头文件中包含标头
我在.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中的所有定义。