【发布时间】:2013-05-23 20:32:24
【问题描述】:
我的程序包含一个包含两个数组成员的结构。我在函数参数中将结构调用为 void 函数。
结构定义:
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'
这里似乎有什么问题?
【问题讨论】:
-
它们是否在单独的文件中声明?向我们展示定义、创建和分配。
-
那个结构定义不是有效的 C。如果你要使用初始化器,你需要在结构定义之后有一个标识符,然后初始化器。
-
你的结构“定义”不应该编译。
-
不要在
struct中初始化数组。 -
请向我们展示显示问题的完整自包含源文件,以及您从编译器获得的确切完整错误消息。并确保您将其编译为 C,而不是 C++;如果您在 C++11 模式下使用 C++ 编译器,您的结构定义实际上可能会编译。
标签: c arrays function data-structures