繁体   English   中英

C标头中包含include

[英]C includes of includes in headers

我现在正与编译器进行全面交流,我想确保问题不是对头文件的方式有根本的误解。 如果我包含一个头文件,并且该头文件中包含头文件(例如<stdbool.h><stdio.h>等),则从属C文件应该没有任何问题,对吗? 据我所知,当我调用我的makefile文件时,预处理器应该相应地插入汇编代码。 我错了吗?

重申:

  • 说我有一个main.cprototype.h

  • prototype.h包含了我通常所有的库和其他内容。

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

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

另外,在那种情况下,如果我在makefile使用gcc-c标志来创建.o文件,是否需要更新makefile目标中的依赖项?

我刚开始时以为我对此有很强的把握,但现在我完全感到困惑。

那是有多个答案的问题。

在简单情况下,仅在.c文件中使用标头时才包含标头。 标头是编译的依赖项,因此对于Make,您只需将其放在使用.c文件的相同存储区中即可。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM