2013-05-28 13 views
7
という名前のメンバーがありません

私のプログラムには、2つの配列メンバーを含む構造体が含まれています。私は構造体を関数パラメータ内のvoid関数に呼んだ。structには

構造体の定義:

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

void関数:私はこのプログラムをコンパイルするとき

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

あなたは、構造内の配列要素を初期化するべきではありません。

関連する問題