c++ - 什么是在 Visual Studio 2012 的新 C++ 项目中自动创建的 stdafx.cpp 文件

标签 c++ visual-studio

据我了解,stdafx.h 是一个预编译的头文件,用于缩短 Visual Studio 中的编译时间。当我在 Visual Studio 2012 中创建一个 c++ 项目时,还有一个 stdafx.cpp。谁能解释一下stdafx.h和stdafx.cpp的关系?

最佳答案

预编译的头文件可以大大加快项目中 .cpp 文件的编译速度。按照惯例,stdafx.h #include 包含您要预编译的所有 .h 文件。您可以随意命名,但项目模板只选择 stdafx.h

但在此之前,必须有一个 .cpp 文件#includes stdafx.h 并首先编译。在项目中的所有其他 .cpp 文件之前。完成后,编译器可以使用创建的 .pch 文件并快速编译所有其他 .cpp 文件,而不再需要实际 #include 头文件。

Stdafx.cpp 就是那个 .cpp 文件。它有一个不同于所有其他 .cpp 文件的设置,它被构建 with /Yc . “创建预编译头文件”选项。


更新:28 年后,微软在 VS2019 上打破了他们“曾经有一个标准框架但没有人见过它”的做法。现在命名为“pch”而不是“stdafx”,肯定是更明显的首字母缩略词。只是换了个名字,机制还是一样的。

关于c++ - 什么是在 Visual Studio 2012 的新 C++ 项目中自动创建的 stdafx.cpp 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17903843/

相关文章:

.net - VS 和 .NET 是否像 Android 一样支离 splinter ?

visual-studio - 为什么我的进程在 64 位操作系统上使用 vshost32.exe 而不是 vshost.exe 运行?

c++ - 是否可以使用 Visual Studio 构建 WinDBG 扩展?

c++ - 链接 pthread 禁用无锁 shared_ptr 实现

SQL Server Management Studio -- 工具/导入和导出设置菜单在哪里?

c++ - 在 C++ 中将字节写入 ofstream

c++ - 如何通过编译器命令行禁用 IBM xl C++ 编译器的特定警告?

c# - 在解决方案中显示类名的 ComboBox 项

c++ - 如何将 "Any kind of data"传递给 C++ 中的函数

c++ - 使用 ostream_iterator 将映射复制到文件中