extern const struct ss_type ss_table [MAX_CLASS];
extern const struct ss_group_type ss_group_table [MAX_GROUPS];
merc.h:4430:30:错误:数组类型具有不完整的元素类型 merc.h:4431:35:错误:数组类型具有不完整的元素类型
在一个宠物项目上工作,我完全被这个项目困住了。我真的不知道为什么这个错误会反映这些行。我最好的猜测是编译器无法理解ss_table,ss_type,ss_group_table和ss_group_type是什么。
但是,定义了ss_table和ss_type
const struct ss_type ss_table [MAX_CLASS] = { { /* FALSE */
"",
{0},
{0},
{NULL}
},
ss_group_table和ss_group_type
也是如此const struct ss_group_type ss_group_table [MAX_GROUPS] =
{
/* NONE: FALSE return 0 */
{"", 0,
{
{NULL, 0, 0, {NULL}, {NULL} }
}
},
让我对如何解决此错误感到茫然。
答案 0 :(得分:0)
不,类型只是前向声明,但未指定。至少你没有给我们任何。像
这样的resl定义struct toto {
double hei;
};
必须可见。
此类struct
定义应放在头文件.h
中,并包含在.c
文件(称为编译单元)中,以使定义可见。
答案 1 :(得分:0)
如果类型不完整,则表示它已被前向声明,但尚未完全声明。
例如,以下编译:
struct S1 {};
struct S1 arr1[10];
而以下情况则不然:
struct S2;
struct S2 arr2[10]; /* error: array type has incomplete element type */
struct S2 {};