这个问题已经在这里有一个答案:
- 什么是在Visual Studio中使用“stdafx.h中”? 4个回答
什么是文件的目的stdafx.h
,什么是预编译头意味着什么?
这个问题已经在这里有一个答案:
什么是文件的目的stdafx.h
,什么是预编译头意味着什么?
stdafx.h
是一个文件,由Microsoft Visual Studio IDE向导生成,描述两个标准体系和项目具体包括经常使用,但很少更改的文件 。 兼容的编译器(例如,视觉C ++ 6.0和更新的版本)将预先编译该文件,以降低整体的编译时间 。Visual C ++会不会编译事情之前
#include "stdafx.h"
源文件中 ,除非编译选项/Yu'stdafx.h'
未选中(默认); 它假定源代码全部直到并包括该行已经编译。
http://en.wikipedia.org/wiki/Precompiled_header
为了扩大对其他优秀的答案:
stdafx.h
是包括所有单个项目的常用标题的文件。 这将包括所有的Windows定义的,例如。 由于此文件包含了这么多东西,编译器处理时,它变得有点慢。 通过预先编译它,编译器可以跳过很多的处理,并一遍又一遍地重复使用; 只要没有它所包含的文件的更改,预编译的结果并不需要更改。
该名stdafx.h
仅仅是一个惯例。 如果你改变了你所有的来源,包括新的文件,而不是你可以轻松将其重命名为别的东西。
为了产生实际的预编译头文件,你需要有特殊的编译标志可以产生预编译输出项目中的一个源文件。 根据规定,这个文件被命名为stdafx.cpp
,如果你检查的设置为源文件,你会看到它是如何不同。
它通常用于预编译头的名称。 虽然使用确切的名称不是必需的,只是默认。 我解释更多关于VC ++预编译的头和g ++在这里 。
您可以使用预编译头的编译速度。
这个想法是,你把所有的头文件,将不会改变,并且你使用多个源文件的预编译的头里面。 那么编译器不会需要重新处理这些头对于每个编译单元。
这是一个预编译的头 ,以减少编译时间。