二进制表达式的无效操作数('struct node'和'struct node')

时间:2016-07-19 19:22:18

标签: c struct

我制作了一个头文件,我在其中声明了struct node并将该对象作为该结构的List。 这是我的头文件 link.h

struct node   
{
    void *data;  //Generic data
    struct node *next;
}List;

Driver.c

#include "link.h"
int main()
{   
    List list1;
    return 0;
}

当我尝试写一个像

这样的语句时
List list1; //in the driver file

它引发了一个错误说:

  

二进制表达式的无效操作数('struct node'和'struct node')

     

使用未声明的标识符'list1';你的意思是'List'吗?

导致这种情况的原因是什么?

1 个答案:

答案 0 :(得分:0)

最有可能的目的是让List成为struct node的别名,因此您需要使用typedef,否则List不是类型而是实例变量结构。

typedef struct node   
{
    void *data;  //Generic data
    struct node *next;
}List;