预编译头文件究竟是什么?什么时候使用?
答案 0 :(得分:7)
预编译头是编译过程中使用的优化。
基本上,如果使用完全相同的定义和环境编译类似stdio.h
的内容,则可以安全地假设每次结果都相同。
因此编译器会记住该标头的“已编译”版本,因此不必再次执行此操作。
实际上,如果您的每个源文件都以以下内容开头,它往往是最初的标题组,因此会产生差异:
#define XYZZY 42
#include <stdio.h>
#include <stdlib.h>
第一个完全编译但会记住紧接第三行之后的状态。下一个可以完全抛弃这三行并加载保存的状态,然后继续编译文件的其余部分。
我第一次看到此功能是在Windows上使用大量 windows.h
头文件,相信我,它对整体构建时间产生了很大的影响。