2013-05-28 21 views
7

Mój program zawiera strukturę zawierającą dwa elementy tablicy. Nazwaliśmy strukturę funkcją pustki w ramach parametrów funkcji.struct nie ma członka o nazwie

definicja

struktura:

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

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

Kiedy skompilować ten program, dostaję błędy opisane poniżej:

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

Co wydaje się być problem tutaj?

+1

Czy są one zadeklarowane w oddzielnych plikach? Pokaż nam definicję, tworzenie i przypisanie. –

+2

Ta definicja struct nie jest poprawna C. Jeśli zamierzasz używać inicjalizatorów, potrzebujesz identyfikatora po definicji struct i inicjatory przychodzą po tym. –

+2

Twoja "definicja" struktury nie powinna się kompilować. – kotlomoy

Odpowiedz

10

spróbować

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

zamiast,

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

Nie należy zainicjować elementów tablicy wewnątrz struktury.

Powiązane problemy