为什么我们使用 \`#include "stdafx.h"\` 而不是 \`#include <stdafx.h>\`?

新手上路,请多包涵

这里,据说:

对于 #include "filename" 预处理器在与包含指令的文件相同的目录中搜索。此方法通常用于包含程序员定义的头文件。

对于 #include <filename> 预处理器以实现相关的方式搜索,通常在编译器/IDE 预先指定的搜索目录中。此方法通常用于包含标准库头文件。

虽然 这个 wiki 链接 表明 stdafx.h 是由 visual studio IDE

stdafx.h 是由 Microsoft Visual Studio IDE 向导生成的文件,它描述了标准系统和项目特定的包含文件,这些文件经常使用但几乎不会更改。

兼容的编译器(例如,Visual C++ 6.0 和更高版本)将预编译此文件以减少总体编译时间。 Visual C++ 不会编译源文件中#include “stdafx.h” 之前的任何内容,除非未选中编译选项 /Yu’stdafx.h’(默认情况下);它假定源代码中直到并包括该行的所有代码都已编译。

stdafx.h 中的 AFX 代表应用程序框架扩展。 AFX 是 Microsoft Foundation Classes (MFC) 的原始缩写。虽然默认使用名称 stdafx.h,但项目可以指定替代名称。

然后

为什么我们使用 #include "stdafx.h" 而不是 #include <stdafx.h>

原文由 Sepideh Abadpour 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 547
1 个回答

一个 stdafx.h , stdafx.cpp 对是由 VS 从模板生成的。它驻留在同一目录中,其余文件结束。您可能最终会专门为您的项目更改它。因此,我们使用 "" 而不是 <> 正是因为它与您的第一个报价所述位于同一目录中。

原文由 Edward Strange 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题