gpt4 book ai didi

C 包含在 header 中

转载 作者:行者123 更新时间:2023-11-30 17:13:04 24 4
gpt4 key购买 nike

我现在正在检查编译器,我想确保问题不是对头文件的基本误解。如果我包含一个头文件,并且该头文件包含在其中(如 <stdbool.h><stdio.h> 等),则依赖的 C 文件不应该有任何问题,对吗?根据我的理解,预处理器应该在我调用 makefile 时相应地插入汇编代码。我是不是搞错了?

重申一下:

  • 假设我有一个 main.cprototype.h .

  • prototype.h里面有我常用的所有库和其他内容。

  • 我还有几个其他 C 文件(例如 secondary.ctertiary.c ),它们都需要常用的库,并且可能需要也可能不需要某些原型(prototype),并且还具有他们自己的头文件。

我需要做的就是包含 prototype.h在每个 C 文件中,对吗?

此外,在这种情况下,如果我正在制作 .o使用 -c 文件gcc 的旗帜在我的makefile ,我是否需要更新 makefile 的目标中的依赖项?

刚开始时我以为自己已经掌握了这个问题,但现在我完全困惑了。

最佳答案

这是有多个答案的问题。

在简单的情况下,您仅包含在 .c 文件中使用的 header 。 header 是编译的依赖项,因此对于 Make,您只需将其放在使用这些 header 的 .c 文件所在的同一存储桶中即可。

对于大型项目来加速编译,您可以使用所谓的“预编译头”。您必须在每个源文件中包含相同的头文件,编译器只会处理该头文件一次。当 header 很复杂时(例如 boost 库),这非常有用

关于C 包含在 header 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31085016/

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