我想返回一个结构并在main中打印其中一个成员。
我在尝试编译时收到此错误:
Main.c: In function ‘main’:
Main.c:8:2: error: invalid use of undefined type ‘struct busRoute’
任何帮助将不胜感激。我不明白为什么我要做的事情不会编译。
BusRoute.c
#include <stdio.h>
#include "BusRoute.h"
struct busRoute {
int busRouteNumber;
char *startingLocation;
char *endingLocation;
char driverName[36];
} route[STRUCT_SIZE] = {0};
//retrieves route info
struct busRoute getBusRouteInfo(unsigned int index)
{
return route[index];
}
void setStruct()
{
route[2].busRouteNumber = 5;
}
Main.c档案
#include <stdio.h>
#include "BusRoute.h"
int main()
{
setStruct();
printf("%d",getBusRouteInfo(2).busRouteNumber);
}
答案 0 :(得分:2)
如果您想在struct busRoute
中使用BusRoute.h
,则应在BusRoute.c
而非main.c
中定义main.c
。如果您的getBusRouteInfo()
函数返回一个,那么 想要在main.c
中使用它。如果struct busRoute
无法看到此定义,则不知道busRouteNumber
甚至有名为getBusRouteInfoRouteNumber(2)
的成员,更不用说如何获取它了,这就是编译失败的原因。
您的另一个选择是定义类似main.c
的函数,它将间接返回相应的成员。这样,struct busRoute
无需了解实际的{{1}}。