gpt4 book ai didi

c - stdio 包含在头文件中

转载 作者:行者123 更新时间:2023-12-02 08:49:12 28 4
gpt4 key购买 nike

我不太确定,但这看起来不对:

我有一个名为fraction.h 的头文件,其中我存储了一个分数结构和处理它的方法,一种方法用于在文件和签名中写入分数函数的第一个参数是一个 FILE 指针。

分数.h:

...
const Fraction * fraction_fwrite(const Fraction * f, FILE * file);
...

分数.c:

#include <stdio.h>
#include "fraction.h"
...

现在,当我尝试编译一个使用分数的程序时,出现错误,

这是我的 Makefile 中的内容:

program_test: fraction.o program_test.o

当然,我在 program_test.c 中包含了 fraction.h。但我不断收到此错误:

fraction.h:34:54: 错误:未知类型名称“FILE”

有人可以解释编译器包含文件的不同步骤吗?因为<stdio.h>fraction.c 中,那么为什么它会出现这种未发现类型的错误?

我应该包括<stdio.h>吗?在 fraction.h 中?从我可怜的经历来看,这看起来不太合适。

最佳答案

编译时program_test ,编译器不会查看其他 .c 文件,只会查看您的文件 #include在您实际编译的文件中。

因此,您要么必须 #include <stdio.h>在测试程序中,就像在 fraction.c 中一样,或将其包含在头文件中。

即使 C 标准说标准库文件不会互相包含,也没有说用户定义的文件不能做到这一点。事实上,如果使用它们,通常会更容易使用。

关于c - stdio 包含在头文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9819754/

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