据我了解,stdafx.h 是一个预编译头文件,用于使 Visual Studio 中的编译时间更快。当我在 Visual Studio 2012 中创建 C++ 项目时,还有一个 stdafx.cpp。有人可以解释 stdafx.h 和 stdafx.cpp 之间的关系吗?
预编译头可以大大加快项目中 .cpp 文件的编译速度。按照惯例,#include 是 stdafx.h,其中包含您想要预编译的所有 .h 文件。您可以将其命名为任何您想要的名称,但项目模板只选择 stdafx.h
但在此之前,必须有one#include stdafx.h 并首先编译的 .cpp 文件。在项目中的所有其他 .cpp 文件之前。完成后,编译器可以使用创建的 .pch 文件并快速编译所有其他 .cpp 文件,而不再需要实际 #include 标头。
Stdafx.cpp 就是那个 .cpp 文件。它有一个与所有其他 .cpp 文件不同的设置,它是构建的with /Yc http://msdn.microsoft.com/en-us/library/7zc28563.aspx。 “创建预编译头文件”选项。
更新:28 年后,微软在 VS2019 上打破了“曾经有一个 std 框架,但没人见过它”的做法。项目模板现在将这些文件命名为 pch.h 和 pch.cpp,而不是 stdafx.h 和 stdafx.cpp。当然是为了更明显的缩写。只是名称改变,机制仍然相同。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)