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

Sep*_*our 8 c++ directive include header-files visual-studio-2010

这里开始,据说:

对于#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代表Application Framework eXtensions.AFX是Microsoft基础类(MFC)的原始缩写.虽然默认使用名称stdafx.h,但项目可以指定替代名称.

然后

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

Edw*_*nge 8

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