我无法对指向已被类型定义的结构的指针进行类型定义
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;
};
但后来我碰巧是那些没有充分理由不喜欢类型定义结构的人之一。在这里阅读更多:
我对这些声明的行有点困惑。我想为我的程序制作一个链接列表,但由于某种原因,当我尝试编译它时它总是出错。基本上这将是我的主要节点模型,我的列表后面还有另一个结构(没有 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;
};
但后来我碰巧是那些没有充分理由不喜欢类型定义结构的人之一。在这里阅读更多: