gpt4 book ai didi

c - 从 C 中的不同文件返回结构

转载 作者:太空宇宙 更新时间:2023-11-04 06:24:14 24 4
gpt4 key购买 nike

最近在C语言中遇到了从另一个文件返回struct的问题。下面是 main.c 的代码:

#include <stdio.h>
#include <stdlib.h>
#include "hash_types.h"


int main()
{
hashinfo info;

info = numerator();

printf("%d\n", info.ppower);

return 0;
}

和 numerator.c:

#include <stdlib.h>
#include <stdio.h>
#include "hash_types.h"

hashinfo numerator()
{
hashinfo info;

info.ppower = 15;

return info;
}

这是头文件的样子:

typedef struct hashinfo{

unsigned long a_str;
unsigned long a_int;
unsigned long b_int;
unsigned long p;
unsigned long m;
char w;
char ppower;
}hashinfo;

当我尝试编译代码时,gcc 无法编译 main 报告

main.c: In function ‘main’:
main.c:10:7: error: incompatible types when assigning to type ‘hashinfo’ from type 'int'
info = numerator();
^

如果我将所有这些都放在一个文件中并编译,它会工作得很好。我究竟做错了什么?提前致谢。

最佳答案

您必须在要使用它的任何地方声明您的numerator 函数。这是最小声明的样子

hashinfo numerator();

但更好的办法是用原型(prototype)声明它

hashinfo numerator(void);

并在定义中做同样的事情。

一种典型的方法是将声明放入头文件中,并将其包含在您要使用此函数的任何地方。您的 hash_types.h 是否合适由您决定。

关于c - 从 C 中的不同文件返回结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29247385/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com