2016-04-09 22 views
0

Ben struct'ın bir işlevin bir dizi geçmesine çalışıyorum için yapılar bir dizi geçme:bir fonksiyonu

struct processData 
{ 
    int arrivalTime; 
    int durationTime; 
    int completionTime; 
    int turnAroundTime; 
    int waitTime; 
    int processNumber; 
    float netTurnAroundTime; 
} temp; 


processData a[n]; 

find(a); 

void find(struct processData a[]) 
{ 
int tempDurationTime[n]; 
int flag = 0; 
int count = 0; 
int currentProcess; 
j = 0; 
int timeQuantum = 5; 
... 

ı bulmak için eşleşen işlev çağrısı yazan bir hata alıyorum (processData [n]). İşlev üstbilgisi struct processData a [] aldığından bu hatayı neden aldığımı bilmiyorum. Yardımlarınız için teşekkürler.

+1

bulmak çağrısından sonra ilan edilir. – stark

cevap

0
find(a);` 

aslında bir fonksiyonudur Bir işlev bildirimi yerine çağrı yapın ve bu nedenle, tanımladığınızdan/bildirmeden önce işlevi çağırmaya çalıştığınız için eşleşen bir işlev hatası almıyorsunuz.

bu deneyin:

struct processData 
{ 
    int arrivalTime; 
    int durationTime; 
    int completionTime; 
    int turnAroundTime; 
    int waitTime; 
    int processNumber; 
    float netTurnAroundTime; 
} temp; 


processData a[n]; 

void find(struct processData a[]) 
{ 
int tempDurationTime[n]; 
int flag = 0; 
int count = 0; 
int currentProcess; 
j = 0; 
int timeQuantum = 5; 
... 
} 

int main() 
{ 
    find(a); 
} 
+0

Bu harika çalıştı. Yardım için teşekkürler. – dgj918

0

Gerçekten tanımlanmadan önce bir işlev kullanmak istiyorsanız ileri bildirim kullanmanız gerekir.

Örnek:

int blah(); 

int g = blah(); 

int blah() 
{ 
    return 9; 
} 
0

o çağrılmadan önce emin fonksiyon find düzgün bildirildi olun (yani: işlev düzgün dahildir ilan edilir emin başlık olun)

+0

@songyuanyao: Haklısınız; cevaptan kaldırıldı. – shrike