[英]C includes of includes in headers
我现在正与编译器进行全面交流,我想确保问题不是对头文件的方式有根本的误解。 如果我包含一个头文件,并且该头文件中包含头文件(例如<stdbool.h>
或<stdio.h>
等),则从属C文件应该没有任何问题,对吗? 据我所知,当我调用我的makefile文件时,预处理器应该相应地插入汇编代码。 我错了吗?
重申:
说我有一个main.c
和prototype.h
。
prototype.h
包含了我通常所有的库和其他内容。
我还有几个其他的C文件(例如, secondary.c
和tertiary.c
),它们也都需要常用的库,并且可能需要也可能不需要某些原型,并且还具有自己的头文件。
我需要做的就是在每个C文件中包含prototype.h
,对吗?
另外,在那种情况下,如果我在makefile
使用gcc
的-c
标志来创建.o
文件,是否需要更新makefile
目标中的依赖项?
我刚开始时以为我对此有很强的把握,但现在我完全感到困惑。
那是有多个答案的问题。
在简单情况下,仅在.c文件中使用标头时才包含标头。 标头是编译的依赖项,因此对于Make,您只需将其放在使用.c文件的相同存储区中即可。
为了加快大型项目的编译速度,您可以使用“预编译头文件”。 您必须在每个源文件中包含相同的头文件,编译器将只处理该头一次。 当标头很复杂(例如boost库)时,这非常有用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.