外部阵列结构

时间:2012-01-17 11:04:28

标签: c arrays structure extern

我有一个声明为

的全局结构数组
struct _links link[255][255][255];

在我的main.c.这个结构数组也用在另一个文件action.c中,我试图在action.c中将它声明为extern,即。

extern struct _links link[255][255][255];

但是,我收到错误消息“数组类型具有不完整的元素类型”。我不明白这意味着什么。我该如何解决这个问题?

谢谢。

3 个答案:

答案 0 :(得分:3)

在头文件中定义结构struct _links;在my_main.c和action.c中包含它,单独编译它们并链接它们。

对于内置数据类型,它没有头文件。但对于用户定义的数据类型,需要头文件。

答案 1 :(得分:2)

您必须在某处声明类型struct _links

答案 2 :(得分:1)

一个好的编程习惯是创建一个包含

的新文件links.h
extern struct _links link[255][255][255];

在main.c和action.c上包含此文件。

不要忘记只定义变量一次。

有关extern关键字的更多信息,请查看此帖子https://stackoverflow.com/a/1433387/1117720