我试图返回定义如下的结构:
EXAMPLE.C
struct test
{
int x;
int y;
int z;
};
struct test t1,t2;
我什至不必解释该功能,因为在头文件中声明该功能时出现错误。
EXAMPLE.H
test calculate(int percent,int distance);
int modify(struct test x1);
因此,我将在函数{{1}中返回结构t1
,并将结构calculate
传递到函数t2
中。我不确定自己在做什么错,但是我收到语法错误
答案 0 :(得分:4)
首先,您的结构类型称为struct test
。不仅test
,而且struct test
。两个字您在modify
函数中使用了正确的类型名称。您在t1
和t2
的声明中使用了正确的类型名称。为什么在test
的情况下突然将其缩短为仅calculate
?
第二,您似乎正在尝试在函数声明中使用尚未声明的结构类型,因为函数在.h
文件中声明,而结构类型在.c
文件中声明。这样的事情可以正确完成,但这通常不是一个好主意(除非您尝试实现不透明的类型)。而且很可能这不是您要尝试执行的操作。那么,为什么要在.c
文件中声明结构类型?一个更好的主意是在函数上方的.h
文件中声明它。