c struct queue error:“数组类型具有不完整的元素类型”

时间:2010-05-24 05:19:47

标签: c struct

我正在尝试从队列数组中实现一个简单的优先级队列。我正在尝试定义一个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;

有人可以帮我一把吗?非常感谢。

3 个答案:

答案 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];