什么是"pch.h",为什么需要将它作为第一个头文件包含在内?

Lee*_* Fu 16 c c++ visual-studio

#include "pch.h"
#include <stdio.h>
#include <string.h>
Run Code Online (Sandbox Code Playgroud)

什么是"pch.h"?为什么需要将其作为第一个头文件包含在内?

P.W*_*P.W 12

pch代表预编译头.

在计算机编程中,预编译头是(C或C++)头文件,编译成中间形式,编译器处理速度更快.使用预编译头可能会显着缩短编译时间,尤其是在应用于大型头文件,包含许多其他头文件的头文件或许多翻译单元中包含的头文件时.

为了减少编译时间,一些编译器允许将头文件编译成更快的编译器处理形式.这种中间形式称为预编译头,通常保存在以.pch或类似扩展名命名的文件中,例如GNU Compiler Collection下的.gch.

在Visual Studio中,预编译的头文件通常命名为"pch.h"(用于基于控制台的应用程序),但可以使用不同的名称,或者根本不使用它.预编译头文件(如果有)由项目设置决定.

如果预编译头文件是"pch.h"并且编译选项是/Yu,则Visual Studio将不会#include "pch.h"在源文件之前编译任何内容; 它假设源中包含该行的所有代码都已编译.

  • pch.h 适用于 VS20109 及更高版本。对于 2017 及更早版本,该文件称为 stdafx.h。请参阅 https://docs.microsoft.com/en-us/cpp/build/creating-precompiled-header-files?view=vs-2019 (4认同)