我在.h文件中定义了struct item
。现在我在另一个.h中定义了另一个struct tPCB
,它是同一个项目的一部分,我需要tPCB
拥有item
。我认为只是创建相同的TurboC项目的一部分将允许我在另一个头文件中使用item,但编译器会抛出“undefined type: ite
”。
我想我不得不在第二个包含第一个标题,但是我看到了相同的代码,但没有这样做。
除了添加#include
行以使其有效之外,还有其他方法吗?
答案 0 :(得分:8)
如果您的.c #include
按正确顺序排列了两个.h文件,它就可以了。这可能就是你记得的情况。最安全的方法是#include
每个定义依赖关系的文件,并依赖每个.h中的包含保护来防止事物被多重定义。
答案 1 :(得分:1)
抱歉,在C中你无法访问结构的定义,在另一个头文件中不包含该文件(通过#include)。 #include说明如下。
因此,假设包含项结构定义的头文件称为“item.h”,并且头文件包含“tPCB.h”中tPCB结构的定义。在tPCB.h的顶部,您应该输入以下语句:
#include "item.h"
这应该使tPCB.h文件能够访问item.h中的所有定义。
答案 2 :(得分:1)
永远不要在头文件中放置变量定义(即分配它们)。这有很多不同的原因,其中两个主要原因是程序设计不佳以及链接器错误泛滥。
如果你需要全局公开一个变量(实际上你需要这么做的情况很少),那么在h文件中将它声明为extern
并将其分配到相应的C文件中。 / p>
答案 3 :(得分:0)
您需要使用#include。在C中,一切都是明确的;不要指望它能通过魔法发挥作用。
答案 4 :(得分:0)
在“另一个.h”中,#include <a .h file>
。
精化:
在定义struct tPCB
的文件中,您需要#include
定义struct item
的文件。