C传递结构数组,数组类型具有不完整的元素类型

时间:2016-04-05 19:43:01

标签: c

我正在写一个小型的Web路由器。我想写一个名为findRoute的通用函数,它接受一个字符串作为路由名称和一个要搜索的结构数组。

router.c

struct route 
{
   char *routeName;
   int routeId;
};
int findRoute(char find[], struct route list[])
{
   // do some strcmp 
   // return id of found route
}

它会像这样使用

subRouter.c

enum someRoutes
{
  Route1,
  Route2
};
struct route someRoute[] = {
   {"route1", Route1},
   {"route2", Route2}
}
int routeId = findRoute("route1", someRoute);
switch(routeId){
   //etc
}

我收到错误 array type has incomplete element type但只能在我的H文件中看起来像

router.h

int findRoute(char find[], struct route list[]);

我的猜测是我没有给list参数一个大小,但是当我这样做时似乎并不重要。

1 个答案:

答案 0 :(得分:0)

将结构路径定义从struct route { char *routeName; int routeId; }; 移动到标题:

router.h:

router.h

并在subRouter.c中添加onCreate()