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