<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg>
讯享网
预处理:发生在编译前,做些代码文本的替换工作。
- 宏定义:#define宏定义的替换。
- 文件包含:#include指明的源程序文件嵌入到当前源文件的指令位置处。
- 条件编译:根据标识符来判断程序段是否需要编译这段代码。
讯享网
预编译:发生在编译中,先预先编译某个文件并保存起来(预编译头文件),在编译遇到需要这个文件的地方直接拿来用。
预编译头文件是什么:预编译头文件(Precompiled Header)实际上就是抓取一堆头文件,并把它们转换成为编译器可以使用的格式,从而不必一遍遍重新编译这些头文件。
为什么需要预编译头文件?
使用预编译头文件主要是为了节省编译的时间
平时写小的项目可能不会用到,一般大型项目会用的比较多。
在一个项目中,如果需要大量使用某个头文件的内容,例如string,那么编译的时候每次#include<string>的时候,都需要重新读取整个string头文件并且编译它。读取编译这个过程,预处理器需要复制string文件内容复制并解析,最后标记编译。当需要大量使用的时候,使用预编译头文件就只需要一次编译。
什么头文件适合放进预编译头文件?
- 始终使用不常更改的一大段代码,例如外部依赖的库,那些基本用户不会去修改的代码。预编译文件仅在它或它包含的任何文件发生更改时进行编辑,如果是需要经常修改的代码放入,那么修改后编译就会导致整个预编译头文件都要重新编译。
- 程序包含多个模块,所有这些模块都使用一组标准的包含文件和相同的编译选项,这样的话就不需要重复include很多。
stdafx.h和pch.h都是在Windows平台上使用的预编译头文件,是Microsoft Visual Studio 中自动生成,其它编译器不用,VS专用。
stdafx.h和pch.h本质上是相同的,只是在Visual Studio 2017及更高版本中,stdafx.h改为了pch.h。
在stdafx.h和pch.h中添加需要预编译的头文件即可,然后在需要这些头文件的cpp文件夹中添加#include“stdafx.h”或者#include“pch.h”。
在MFC中,stdafx.h和pch.h文件中自动包含了MFC标准头文件(如Windows.h、Afxwin.h等),所以在需要的这些标准头文件的时候可以不用单独引用,而是直接引用stdafx.h或pch.h。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/207399.html