изменить данные в структуре - PullRequest
0 голосов
/ 20 ноября 2018

Я пытаюсь написать функцию для изменения данных в структуре.Вот часть моего кода.

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<unistd.h>
#include<pthread.h>
#include<sys/types.h>
#define THREADNUM 20 

pthread_mutex_t DeviceMutex ;
struct VirtualPCB
{
    int tid;
    int handlePriority;
    int arrivetime;
    int waittime;
    int runtime;
    int visited;
    int tempruntime;
    int finishtime;
}PCBs[THREADNUM];


void initPCB()
{
    int n;
    srand(time(NULL));
    for(n =0;n<THREADNUM;n++)
    {

        PCBs[n].tid = n + 1;
        PCBs[n].handlePriority = 1 + rand()%19;
        PCBs[n].arrivetime = 1 + rand()%19;
        PCBs[n].tempruntime=PCBs[n].runtime = 1 + rand()%19;
        PCBs[n].waittime = 0;
        PCBs[n].visited =0;
        PCBs[n].finishtime = PCBs[n].arrivetime + PCBs[n].runtime;
    }
}

void change(PCBs[THREADNUM],int i, int j)
{
    int temp;
    temp = PCBs[i].arrivetime;
    PCBs[i].arrivetime = PCBs[j].arrivetime;
    PCBs[j].arrivetime = temp;
    temp = PCBs[i].runtime;
    PCBs[i].runtime = PCBs[j].runtime;
    PCBs[j].runtime = temp;
    temp = PCBs[i].finishtime;
    PCBs[i].finishtime = PCBs[j].finishtime;
}

, но есть ошибка.

"ошибка: ожидаемый спецификатор объявления или '...'

до PCBs. Я искал в Интернете, но не могу найти эффективный способ.Можете ли вы сказать мне, как их исправить?

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

Синтаксис для определения функции неверен.Вам нужно изменить

  void change(PCBs[THREADNUM],int i, int j) { ....

на

  void change(struct VirtualPCB PCBs[THREADNUM],int i, int j) { ...

или

void change(struct VirtualPCB PCBs[ ],int i, int j) {....
0 голосов
/ 20 ноября 2018

Это недопустимый синтаксис для определения функции:

void change(PCBs[THREADNUM],int i, int j)

Первый параметр требует тип, который вы не указали:

void change(struct VirtualPCB PCBs[THREADNUM],int i, int j)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...