预编译头文件

7
预编译头到底是什么?它们何时被使用?

2
可能是Precompiled Headers的重复问题。还可以参考:为什么要使用预编译头文件(C/C++)? - Cody Gray
1个回答

7

预编译头文件是编译过程中使用的一种优化。

基本上,如果你使用相同的定义和环境来编译类似于stdio.h这样的文件,你可以安全地假设每次的结果都将是相同的。

因此,编译器会记住那个头文件的“已编译”版本,以避免重复进行编译。

实际上,往往是最初的一组头文件使得差异更大。所以,如果你的每一个源文件都以以下方式开头:

#define XYZZY 42
#include <stdio.h>
#include <stdlib.h>

第一种方法会完整编译,但会记住第三行后的状态。第二种方法可以完全舍弃这三行内容,并加载保存的状态,然后继续编译文件的其余部分。

我第一次看到这个特性是在Windows上,它有一个庞大的windows.h头文件,相信我,这大大缩短了总体构建时间。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接