返回一个结构并将一个结构传递给函数

时间:2018-10-24 05:19:21

标签: c

我试图返回定义如下的结构:

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中。我不确定自己在做什么错,但是我收到语法错误

1 个答案:

答案 0 :(得分:4)

首先,您的结构类型称为struct test。不仅test,而且struct test。两个字您在modify函数中使用了正确的类型名称。您在t1t2的声明中使用了正确的类型名称。为什么在test的情况下突然将其缩短为仅calculate

第二,您似乎正在尝试在函数声明中使用尚未声明的结构类型,因为函数在.h文件中声明,而结构类型在.c文件中声明。这样的事情可以正确完成,但这通常不是一个好主意(除非您尝试实现不透明的类型)。而且很可能这不是您要尝试执行的操作。那么,为什么要在.c文件中声明结构类型?一个更好的主意是在函数上方的.h文件中声明它。