C 结构没有名为的成员

C 结构没有名为的成员,c,arrays,function,data-structures,C,Arrays,Function,Data Structures,我的程序包含一个包含两个数组成员的结构。我在函数参数中调用了一个void函数的结构 结构定义: 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++) {

我的程序包含一个包含两个数组成员的结构。我在函数参数中调用了一个void函数的结构

结构定义:

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");
    }
}
这里有什么问题吗?

试试看

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

不应初始化结构中的数组元素。

它们是在单独的文件中声明的吗?向我们展示定义、创建和赋值。该结构定义不是有效的C。如果要使用初始值设定项,则在结构定义之后需要一个标识符,而初始值设定项位于该标识符之后。您的结构“定义”不应编译。不要在
结构中初始化数组。请向我们显示显示问题的完整自包含源文件,以及从编译器获得的完整错误消息。确保你把它编译成C,而不是C++。如果C++ 11中使用C++编译器,则实际上可以编译结构定义。
struct caketime
{
   double baking_time [4]={20,75,40,30};
   double prepare_time[4]={30,40,25,60};
};