我正在尝试从队列数组中实现一个简单的优先级队列。我正在尝试定义一个struct队列,而不是一个结构优先级队列,它有一个队列数组作为其成员变量。但是,当我尝试编译代码时,我收到以下错误:
pcb.h:30:错误:数组类型具有不完整的元素类型
代码如下:
typedef struct{
pcb *head;
pcb *tail;
SINT32 size;
} pcb_Q;
typedef struct {
struct pcb_Q queues[5];
SINT32 size;
} pcb_pQ;
有人可以帮我一把吗?非常感谢。
答案 0 :(得分:3)
你已经输入了pcb_Q,不再需要使用struct关键字了。 只需使用:
typedef struct {
pcb_Q queues[5];
SINT32 size;
} pcb_pQ;
答案 1 :(得分:1)
typedef struct {
pcb_Q queues[5];
SINT32 size;
} pcb_pQ;
您的结构类型没有名称。只有typedef被称为pcb_Q
。
答案 2 :(得分:1)
我不喜欢这句话:
struct pcb_Q queues[5];
哪个引用结构pcb_Q。
您尚未将pcb_Q定义为结构。 相反,你键入了将pcb_Q作为一种新类型(恰好是一个未命名的结构)。
请改为尝试:
pcb_Q queues[5];