extern struct array error: array type has incomplete element type
extern struct array error: array type has incomplete element type
我有 3 个文件:main.c
、def.c
、def.h
。 .c
两个文件都包含 def.h
。
所有文件都在同一个目录中。
我的编译器是 gcc 版本 4.9.2.
在def.h:
struct _info {
int a;
};
在def.c:
#include "def.h"
struct _info info[] = {};
并且在main.c中:
#include "def.h"
extern struct _info info[];
当我将 def.c
构建为目标文件然后使用 main.c
构建时,如:
gcc -c def.c
gcc main.c def.o
我收到一条错误消息:数组类型的元素类型不完整
如果我使用 typedef
将 struct _info
定义为 INFO
,例如:
typedef struct _info INFO;
并在 .c
文件中将 struct _info
替换为 INFO
。
那就编译好了。
但是为什么和typedef
做什么?
感谢大家的帮助。这个问题以 main.c
中的拼写错误结束。
类似于:
extern struct _infoo info[];
当typedef
替换它们时,肯定一切正常。
我有 3 个文件:main.c
、def.c
、def.h
。 .c
两个文件都包含 def.h
。
所有文件都在同一个目录中。
我的编译器是 gcc 版本 4.9.2.
在def.h:
struct _info {
int a;
};
在def.c:
#include "def.h"
struct _info info[] = {};
并且在main.c中:
#include "def.h"
extern struct _info info[];
当我将 def.c
构建为目标文件然后使用 main.c
构建时,如:
gcc -c def.c
gcc main.c def.o
我收到一条错误消息:数组类型的元素类型不完整
如果我使用 typedef
将 struct _info
定义为 INFO
,例如:
typedef struct _info INFO;
并在 .c
文件中将 struct _info
替换为 INFO
。
那就编译好了。
但是为什么和typedef
做什么?
感谢大家的帮助。这个问题以 main.c
中的拼写错误结束。
类似于:
extern struct _infoo info[];
当typedef
替换它们时,肯定一切正常。