Precompiled Header Files - stdafx.h and stdafx.cpp

hese files are used to build a precompiled header file Projname.pch and a precompiled types file Stdafx.obj. 这两个文件用于建立一个预编译的头文件 Projename.pch和一个预定义的类型文件Stdafx.obj。

These files are located in the Projname directory. In Solution Explorer, Stdafx.h is in the Header Files folder, and Stdafx.cpp is located in the Source Files folder. 这两个文件放置在项目文件夹中。在解决方案管理器里,Stdafx.h位于Header Files文件夹,Stdafx.cpp则位于Source Files文件夹。

Stdafx 指 Standard Application Frame Extend。 由于MFC体系结构非常大,包含许多头文件,如果每次都编译的话比较费时。因此,我们把常用的MFC头文件都放在stdafx.h中,如afxwin.h、 afxext.h、afxdisp.h、afxcmn.h等,然后让stdafx.cpp包含这个stdafx.h文件。这样,由于编译器可以识别哪些文 件已经编译过,所以stdafx.cpp就只编译一次,并生成所谓的预编译头文件(因为它存放的是头文件编译后的信息,故名)。         如果读者以后在编程时不想让有些MFC头文件每次都被编译,也可以将它加入到stdafx.h中。采用预编译头文件可以加速编译过程。

Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编译程序也要花费相当长的时间来完成工作。由于每个.CPP文件都包含相同的include文件,为每个.CPP文件都重复处理这些文件就显得很傻了。      为避免这种浪费,AppWizard和Visual C++编译程序一起进行工作,如下所示: 

 

  •      AppWizard建立了文件stdafx.h,该文件包含了所有当前工程文件需要的MFC include文件。且这一文件可以随被选择的选项而变化。 
  •      AppWizard然后就建立stdafx.cpp。这个文件通常都是一样的。 
  •      然后AppWizard就建立起工程文件,这样第一个被编译的文件就是stdafx.cpp。 
  •      当Visual C++编译stdafx.cpp文件时,它将结果保存在一个名为stdafx.pch的文件里。 (扩展名pch表示预编译头文件。)
  •      当Visual C++编译随后的每个.cpp文件时,它阅读并使用它刚生成的.pch文件。 Visual C++不再分析Windows include文件,除非你又编缉了stdafx.cpp或stdafx.h。       在这个过程中你必须遵守以下规则: 
  •      你编写的任何.cpp文件都必须首先包含stdafx.h。 
  •      如果你有工程文件里的大多数.cpp文件需要.h文件,顺便将它们加在stdafx.h (后部)上,然后预编译stdafx.cpp。       由于.pch文件具有大量的符号信息,它是你的工程文件里最大的文件。如果你的磁盘空间有限,你就希望能将这个你从没使用过的工程文件中的.pch文件删除。执行程序时并不需要它们,且随着工程文件的重新建立,它们也自动地重新建立。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值