预编译头stdafx.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
预编译头stdafx

预编译头文件 Stdafx.h 详细解读 今天在改一个很大的程序,慢慢看,慢慢改。突然发现一个.c 文件,里面什么也 没有, 就几个头文件,我一看,我靠,这不是把简单的问题搞复杂了吗,随手删掉那个 c 文件。 结果不能编译了,我靠: fatal error C1083: Cannot open precompiled header file: \Debug/v13_3.pch\: No such file or directory 怎么 rebuild all 都不行。 上网查了一下,才搞懂了: ----------------总结------ 如果工程很大,头文件很多,而有几个头文件又是经常要用的,那么 1。把这些头文件全部写到一个头文件里面去,比如写到preh.h 2 。写一个preh.c ,里面只一句话:#include preh.h 3 。对于preh.c ,在project setting 里面设置 creat precompiled headers,对于其他 .c 文件,设置 use precompiled header file // 哈哈 我试了一下,效果很明显,不用 precompiled header ,编译一次我可以去上个厕 所,用 precompiled header ,编译的时候,我可以站起来伸个懒腰,活动活动就差不多啦 ---------转载的文章---------- 预编译头的概念: 所谓的预编译头就是把一个工程中的那一部分代码,预先编译好放在一个文件里 (通常是 以.pch 为扩展名的) ,这个文件就称为预编译头文件这些预先编译好的代码可以 是任何的 C/C++代码甚至是 inline 的函数,但是必须是稳定的,在工程开发的过程 中不会 被经常改变。如果这些代码被修改,则需要重新编译生成预编译头文件。注意生 成预编 译头文件是很耗时间的。同时你得注意预编译头文件通常很大,通常有 6-7M 大。 注意及 时清理那些没有用的预编译头文件。 也许你会问:现在的编译器都有 Time stamp 的功能,编译器在编译整个工程的 时候,它 只会编译那些经过修改的文件,而不会去编译那些从上次编译过,到现在没有被 修改过 的文件。那么为什么还要预编译头文件呢?答案在这里,我们知道编译器是以文 件为单 位编译的,一个文件经过修改后,会重新编译整个文件,当然在这个文件里包含 的所有 头文件中的东西(.eg Macro, Preprocesser )都要重新处理一遍。VC 的预编译头 文件 保存的正是这部分信息。以避免每次都要重新处理这些头文件。 预编译头的作用: 根据上文介绍,预编译头文件的作用当然就是提高编译速度了,有了它你没有必 要每次 都编译那些不需要经常改变的代码。编译性能当然就提高了。 预编译头的使用: 要使用预编译头,我们必须指定一个头文件,这个头文件包含我们不会经常改变 的 代码和其他的头文件,然后我们用这个头文件来生成一个预编译头文件(.pch 文 件) 想必大家都知道 StdAfx.h 这个文件。很多人都认为这是 VC 提供的一个“系统级 别” 的 ,编译器带的一个头文件。其实不是的,这个文件可以是任何名字的。我们来考 察一个 典型的由 AppWizard 生成的 MFC Dialog Based 程序的预编译头文件。(因为 AppWizard 会为我们指定好如何使用预编译头文件,默认的是 StdAfx.h,这是VC 起的名字)。 我们 会发现这个头文件里包含了以下的头文件: #include afxwin.h // MFC core and standard components #include afxext.h // MFC extensions #include afxdisp.h // MFC Automation classes #include afxdtctl.h // MFC support for Internet Explorer 4 Common Controls #include afxcmn.h 这些正是使用 MFC 的必须包含的头文件,当然我们不太可能在我们的工程中修 改这些头文 件的,所以说他们是稳定的。 那么我们如何指定它来生成预编译头文件。我们知道一个头文件是不能编译的。 所以我 们还需要一个 cpp 文件来生成.pch 文件。这个文件默认的就是 StdAfx.cpp。在这 个文件 里只有一句代码就是:#include “Stdafx.h” 。原因是理所当然的,我们仅仅是要它

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档