我无法对指向已被类型定义的结构的指针进行类型定义

I cannot typedef a pointer to structure that has already been typedef-ed

我对这些声明的行有点困惑。我想为我的程序制作一个链接列表,但由于某种原因,当我尝试编译它时它总是出错。基本上这将是我的主要节点模型,我的列表后面还有另一个结构(没有 TYPEDEF)。编译得很好。我不知道出了什么问题。

我已经尝试将 typedef 放在 struct student 上。

typedef struct
{
    char name[50];
    int id;
    node next;

}student;

typedef student* node;

typedef struct listR* list;

struct listR
{
    node head,tail;
    int size;

};

错误: 未知类型名称 'node' 警告: 从没有转换的整数初始化指针

编译器不知道节点是什么,因为你在创建结构之后创建节点类型。

您可以执行以下任一操作:

typedef struct node node;

struct node
{
  char name[50];
  int id;
  node* next;
};

告诉编译器节点是什么,

typedef struct node {
    char name[50];
    int id;
    struct node* next;
} node;

我会用这个:

struct Node
{
  struct Node *next;
  struct Node *prev;
};

但后来我碰巧是那些没有充分理由不喜欢类型定义结构的人之一。在这里阅读更多: