我制作了一个头文件,我在其中声明了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'吗?
导致这种情况的原因是什么?
答案 0 :(得分:0)
最有可能的目的是让List
成为struct node
的别名,因此您需要使用typedef
,否则List
不是类型而是实例变量结构。
typedef struct node
{
void *data; //Generic data
struct node *next;
}List;