我正在尝试在xv6中实现一个队列。在proc.c中,我有一个名为
的结构struct pqueue_n
{
struct proc *head;
struct proc *tail;
int lenght;
};
我还创建了一个结构数组
struct pqueue_n queue[MAX_LL];
初始化我看起来像这样
struct pqueue_n* queue = {0,0,0};
我写了两个方法,也就是入队和出队 void enqueue_n(void)
{
struct proc *p = myproc();
struct pqueue_n* pq;
if(p->priority < MAX_PRIORITY || p->priority> MIN_PRIORITY)
{
return;
}
if (pq->tail == ((void *)0))
{
return;
}
if (pq->head == ((void *)0))
{
p->next = pq->head;
pq->head = p;
pq->tail = p;
}
else if(pq->head != ((void*)0))
{
if(pq->head->priority == p->priority)
{
p->next = pq->head;
pq->head = p;
}
}
pq->lenght++;
}
void dequeue_n(void)
{
struct proc *p;
struct pqueue_n* pq;
{
if(pq->head == ((void *)0))
{
return ;
}
p = pq->head;
pq->head = pq->head->next ;
p->next = 0;
}
}
我正在尝试将结构初始化为globe结构。因此我可以在我的方法中使用该结构。每当我编译。我收到此错误 &#34;标量初始化器中的多余元素&#34; &#34;'pq'在此函数中未初始化使用&#34;。