stdafx.h中的目的[复制]stdafx.h中的目的[复制](Purpose of stdafx

2019-05-10 11:34发布

这个问题已经在这里有一个答案:

  • 什么是在Visual Studio中使用“stdafx.h中”? 4个回答

什么是文件的目的stdafx.h ,什么是预编译头意味着什么?

Answer 1:

stdafx.h是一个文件,由Microsoft Visual Studio IDE向导生成,描述两个标准体系和项目具体包括经常使用,但很少更改的文件 。 兼容的编译器(例如,视觉C ++ 6.0和更新的版本)将预先编译该文件,以降低整体的编译时间

Visual C ++会不会编译事情之前#include "stdafx.h"源文件中 ,除非编译选项/Yu'stdafx.h'未选中(默认); 它假定源代码全部直到并包括该行已经编译。

http://en.wikipedia.org/wiki/Precompiled_header



Answer 2:

为了扩大对其他优秀的答案:

stdafx.h是包括所有单个项目的常用标题的文件。 这将包括所有的Windows定义的,例如。 由于此文件包含了这么多东西,编译器处理时,它变得有点慢。 通过预先编译它,编译器可以跳过很多的处理,并一遍又一遍地重复使用; 只要没有它所包含的文件的更改,预编译的结果并不需要更改。

该名stdafx.h仅仅是一个惯例。 如果你改变了你所有的来源,包括新的文件,而不是你可以轻松将其重命名为别的东西。

为了产生实际的预编译头文件,你需要有特殊的编译标志可以产生预编译输出项目中的一个源文件。 根据规定,这个文件被命名为stdafx.cpp ,如果你检查的设置为源文件,你会看到它是如何不同。



Answer 3:

它通常用于预编译头的名称。 虽然使用确切的名称不是必需的,只是默认。 我解释更多关于VC ++预编译的头和g ++在这里 。

您可以使用预编译头的编译速度。

这个想法是,你把所有的头文件,将不会改变,并且你使用多个源文件的预编译的头里面。 那么编译器不会需要重新处理这些头对于每个编译单元。



Answer 4:

这是一个预编译的头 ,以减少编译时间。



文章来源: Purpose of stdafx.h [duplicate]