我有一个声明为
的全局结构数组struct _links link[255][255][255];
在我的main.c.这个结构数组也用在另一个文件action.c中,我试图在action.c中将它声明为extern,即。
extern struct _links link[255][255][255];
但是,我收到错误消息“数组类型具有不完整的元素类型”。我不明白这意味着什么。我该如何解决这个问题?
谢谢。
答案 0 :(得分:3)
在头文件中定义结构struct _links
;在my_main.c和action.c中包含它,单独编译它们并链接它们。
对于内置数据类型,它没有头文件。但对于用户定义的数据类型,需要头文件。
答案 1 :(得分:2)
您必须在某处声明类型struct _links
。
答案 2 :(得分:1)
一个好的编程习惯是创建一个包含
的新文件links.hextern struct _links link[255][255][255];
在main.c和action.c上包含此文件。
不要忘记只定义变量一次。
有关extern关键字的更多信息,请查看此帖子https://stackoverflow.com/a/1433387/1117720