首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >stdafx.h的目的

stdafx.h的目的
EN

Stack Overflow用户
提问于 2010-06-04 16:33:08
回答 4查看 22.1K关注 0票数 39

文件stdafx.h的用途是什么?预编译头意味着什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-06-04 16:34:02

stdafx.h是一个由Microsoft向导生成的文件,它描述标准系统和特定于项目的包含经常使用但很少更改的文件。兼容编译器(例如VisualVISUAL6.0及更新版本)将C++预编译此文件,以减少整个编译时间()。 除非未选中选项/Yu'stdafx.h' (默认情况下),否则Visual C++将不会在源文件中的之前编译任何内容;它假设源代码中的所有代码都已编译,并包括该行。

标题

票数 31
EN

Stack Overflow用户

发布于 2010-06-04 16:50:45

要扩展到其他优秀的答案:

stdafx.h是包含单个项目的所有常用标头的文件。例如,这将包括所有Windows定义。因为这个文件包含了太多的东西,所以编译器在处理它时会变得有点慢。通过预编译它,编译器可以跳过大部分处理,并一次又一次地重用它;只要它包含的文件没有变化,预编译结果也不需要更改。

stdafx.h这个名字只是一个惯例。如果将所有源更改为包含新文件,则可以轻松地将其重命名为其他文件。

要生成实际的预编译头文件,您需要在项目中有一个具有特殊编译标志的源文件来生成预编译输出。按照惯例,这个文件名为stdafx.cpp,,如果您检查该源文件的设置,您将看到它是如何不同的。

票数 13
EN

Stack Overflow用户

发布于 2010-06-04 16:33:54

它通常用于预编译头的名称。虽然不需要使用这个确切的名称,但默认的名称是。我在这里解释关于VC++和g++预编译头的更多信息。

您可以使用预编译头来加快编译速度。

这样做的目的是将不会更改的任何头文件放在预编译头中的几个源文件中。然后编译器将不需要为每个编译单元重新处理这些头。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2976035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档