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

问题描述 投票:0回答:3

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

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

c struct
3个回答
1
投票
typedef struct {
 pcb_Q queues[5];
 SINT32 size;
} pcb_pQ;

您的结构类型没有名称。只有typedef被称为pcb_Q


3
投票

你已经输入了pcb_Q,不再需要使用struct关键字了。只要用这个:

typedef struct { 
    pcb_Q queues[5]; 
    SINT32 size; 
} pcb_pQ;

1
投票

我不喜欢这句话:

struct pcb_Q queues[5];

哪个引用结构pcb_Q。

您尚未将pcb_Q定义为结构。相反,您键入了将pcb_Q作为新类型(恰好是一个未命名的结构)。

试试这个:

pcb_Q queues[5];
© www.soinside.com 2019 - 2024. All rights reserved.