stdafx.h
文件的目的是什么?预编译标题是什么意思?
答案 0 :(得分:29)
stdafx.h
是由...生成的文件 Microsoft Visual Studio IDE向导, 这描述了两个标准系统 和项目特定的包含文件 经常使用但很难使用 永远改变。 兼容的编译器(例如, Visual C ++ 6.0及更新版本将会 预编译此文件以减少 整体编译时间。Visual C ++会 之前没有编译任何东西 源文件中的
#include "stdafx.h"
,除非是编译选项/Yu'stdafx.h'
未经检查(由 默认);它假定了所有代码 来源并包括该行 已编译。
答案 1 :(得分:13)
扩展其他优秀答案:
stdafx.h
是包含单个项目的所有常用标头的文件。例如,这将包括所有Windows定义。因为这个文件包含很多东西,编译器在处理它时会有点慢。通过预编译,编译器可以跳过大部分处理并一遍又一遍地重复使用它;只要它包含的文件都没有改变,预编译的结果也不需要改变。
名称 stdafx.h
只是一种惯例。如果您更改了所有源代码以包含新文件,则可以轻松地将其重命名为其他内容。
要生成实际的预编译头文件,项目中需要一个具有特殊编译标志的源文件来生成预编译输出。按照惯例,此文件名为 stdafx.cpp
,如果您检查该源文件的设置,您将看到它的不同之处。
答案 2 :(得分:6)
它通常用于预编译头文件的名称。虽然不需要使用该确切名称,但只需使用默认名称。 I explain more about pre-compiled headers on VC++ and g++ here
您可以使用预编译的标头来加快编译速度。
这个想法是你放置任何不会改变的头文件,并且你在预编译头中的几个源文件中使用它。然后编译器将不需要为每个编译单元重新处理这些头。
答案 3 :(得分:2)
这是precompiled header,以减少编译时间。