可能重复:
C 中的循环定义
typedef struct{
node *next;
node *last;
} doubleLink;
typedef struct{
doubleLink doubleLink;
int data;
} node;
以上是用双链接定义对象的注定失败的尝试。将任何一个 typedef 放在另一个之前会导致“未知类型”的编译错误一个明显的办法是将 doubleLink 中的指针类型说明符更改为void *
但我想知道是否有更多“无害”的解决方案,比如说,也许我可以声明节点结构没有定义它?
我知道这一定是一个常见问题,但我不知道我可以通过什么关键字找到它。