array type has incomplete element type 问题及解决
最近在项目中用到一个线性插值查找的例程,定义了一个结构体, 结构体中使用了自身结构体指针。
struct xxx {
struct xxx *p;
}
使用该例程时,定义了结构数组, struct xxx AA[100], 在调用程序的头文件作了外部声明 extern struct xxx AA;编译时出现了错误:
extern AA array type has incomplete element type struct....
百度网上的解决方法,需要把结构体改成 typedef。但 上述结构体中使用了自身结构体的指针,后参考网上博文
《结构体定义中不可以包含自己类型的变量,可以包含自己类型的指针》https://blog.csdn.net/blank_koko/article/details/129390338
采用了 typedef struct xxx {
struct xxx *p
}YYY;
YYY AA[100] 定义结构数组
extern YYY AA[] , 头文件说明;
这样完美的解决了问题。