在file1.c
我有:
struct node
{
int key;
jobPtr jobX;
struct node *next;
};
struct node *head = NULL;
void method()
{
...
}
我想在head
中使用file2.c
指针。所以我添加到头文件headerX.h
:
extern struct node *head;
在file2.c
我这样做:
struct node *head;
int main() {
}
但在file2.c
我无法使用head
。我做错了什么?
UPD
我在file2.c文件中删除了struct node *head
,但我还是不能使用head
指针。我的IDE允许我在file2.c中键入head
但是当我想调用structure
IDE的元素时,IDE会给我no suggestions for members of struct node *
。
答案 0 :(得分:3)
您在两个地方定义了head
。
这是声明:
extern struct node *head;
虽然这是定义:
struct node *head;
应该只有一个定义,所以删除file2.c中的那个。
编辑:
除extern
声明外,您的标头文件还应包含struct node
的定义:
struct node {
// define fields here
};