Редактировать 2
Спасибо за все предложения, я отредактировал приведенный ниже код из предоставленных предложений.Тем не менее, он все еще не компилируется.Но, тем не менее, большое спасибо за помощь.
Edit
Я прошу прощения за то, что не поместил структуру pcb в фрагмент кода.Существует структура pcb, определенная выше двух структур, которые я первоначально разместил.А именно,
typedef struct pcb{
UINT32 proc;
struct pcb *link;
}pcb;
Привет,
Я задал вопрос о структурах в C несколько минут назад и получил быстрый ответ.Но сейчас я сталкиваюсь с другой проблемой, а именно с ошибкой в названии этого вопроса.Я пытаюсь реализовать простую очередь приоритетов в C, используя массивы очередей.Однако, когда я пытаюсь объявить функцию в структуре pcb_pQ, я получаю вышеуказанную ошибку.У меня есть структуры, четко определенные в прослушиваемом файле.
В заголовочном файле:
typedef struct pcb_Q{
pcb *head;
pcb *tail;
SINT32 size;
} pcb_Q;
typedef struct pcb_pQ {
pcb_Q queues[5];
SINT32 size;
} pcb_pQ;
Прототип функции в заголовочном файле:
/*priority queue operations*/
VOID pcb_pq_enqueue(pcb_pQ*, pcb*);
Выполнение функции в.c file:
VOID pcb_pq_enqueue(pcb_pQ* pcb_pQ_p, pcb* pcb_p) {
pcb_Q* pcb_Q_p;
int priority;
priority = pcb->proc_priority;
pcb_Q_p = &pcb_pQ->queues[priority];
pcb_enqueue(pcb_Q_p, pcb);
}
Когда я пытаюсь скомпилировать приведенный выше код, я получаю «error: Ожидается») перед «*» токеном.Эта ошибка указывает на сигнатуру функции в файле .c, а именно:
VOID pcb_pq_enqueue(pcb_pQ* pcb_pQ_p, pcb* pcb_p) {
Но я не уверен, почему я получаю эту ошибку, кто-то может мне помочь?Большое спасибо.