c - 返回结构并将结构传递给函数

标签 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);

因此,我将在函数calculate 中返回结构t1,并将结构t2 传递给函数modify。我不确定我做错了什么,但我收到语法错误

最佳答案

首先,您的结构类型称为 struct test .不只是test ,但是struct test .两个字。您在 modify 中使用了正确的类型名称功能。您在 t1 的声明中使用了正确的类型名称和 t2 .你为什么突然把它缩短为一个test如果是 calculate

其次,您似乎正试图在函数声明中使用尚未声明的结构类型,因为这些函数是在 .h 中声明的。文件和结构类型在 .c 中声明文件。像这样的事情可以适本地完成,但这通常不是一个好主意(除非你试图实现一个不透明的类型)。这很可能不是您想要做的。那么,为什么要在 .c 中声明结构类型?文件?一个更好的主意是在 .h 中声明它文件也在你的函数之上。

关于c - 返回结构并将结构传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52961537/

相关文章:

c - 当 gets(t) 从命令行获取输入 "Q"时,为什么 t != "Q"不终止 while 循环?

c - scanf 之后 fgets 不起作用

c - C中的str==NULL和str[0]=='\0'有什么区别?

c - 结构末尾未命名位域的用途是什么

c - fopen 返回没有这样的文件或目录,文件存在

c - 如何断言两种类型在c中是相等的?

c - 预处理器在系统编译流程中做什么?

c++ - 由于未对齐的内存地址,内存地址是否会被破坏?

C 编程 Char 可能的值

c - 发生溢出,但 errno 不是 ERANGE。这是怎么发生的?