2013-05-28 23 views
7

Programım iki dizi üyesi içeren bir yapı içeriyor. Yapıyı fonksiyon parametrelerindeki boş bir işleve çağırdım.struct adında hiç üye yok

yapı tanımı:

struct caketime 
{ 
    double baking_time [4]={20,75,40,30}; 
    double prepare_time[4]={30,40,25,60}; 
}; 

boşluk fonksiyonu: ben bu programı derlerken

void prepareorder(struct caketime p) { 

int i=0; 
    for (i=0;i<LIMIT;i++) 
    { 
     if(p.prepare_time[i]==25) 
      printf("Choclate"); 
     else if (p.prepare_time[i]==30) 
      printf("Sponge Cake"); 
     else if (p.prepare_time[i]==45) 
      printf("Meringue"); 
     else if (p.baking_time[i]==60) 
      printf("Red_velvet"); 
    } 
} 

, ben hatalar aşağıda tarif olsun: görünmektedir Ne

In function 'prepareorder': error: 'struct caketime' has no member named 'prepare_time' 
error: 'struct caketime' has no member named 'baking_time' 

Burada sorun mu var?

+1

Bunlar ayrı dosyalarda bildirilmiş mi? Tanımı ve yaratımı ve atamayı bize göster. –

+2

Bu yapı tanımı geçerli değil C. Başlatıcıları kullanacaksanız, yapı tanımından ve başlatıcılardan sonra bir tanımlayıcıya ihtiyacınız var. –

+2

Yapınızın "tanımı" derlenmemelidir. – kotlomoy

cevap

10

deneyin, yerine

struct caketime 
{ 
    double baking_time[4]; 
    double prepare_time[4]; 
}; 

,

struct caketime 
{ 
    double baking_time [4]={20,75,40,30}; 
    double prepare_time[4]={30,40,25,60}; 
}; 

Sen yapının içinde dizi öğeleri başlatmak olmamalıdır.

İlgili konular