2013-05-28 131 views
7

我的程序包含一個包含兩個數組成員的結構。我已經在函數參數中將該結構稱爲void函數。struct沒有任何成員

結構定義:

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

空隙功能:

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"); 
    } 
} 

當我編譯這個程序,我得到以下描述的錯誤:

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

什麼似乎是問題在這裏?

+1

它們是在單獨的文件中聲明的嗎?向我們展示定義,創建和分配。 –

+2

該結構定義無效C.如果要使用初始值設定項,則在結構定義和初始值設定項之後需要一個標識符。 –

+2

你的結構「定義」不應該編譯。 – kotlomoy

回答

10

嘗試,

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}; 
}; 

你不應該初始化結構中的數組元素。