代码之家  ›  专栏  ›  技术社区  ›  ckv

stdafx.h目的[副本]

  •  38
  • ckv  · 技术社区  · 14 年前

    这个问题已经有了答案:

    这个文件的目的是什么 stdafx.h 什么意思? 预编译头文件 ?

    4 回复  |  直到 8 年前
        1
  •  29
  •   M.M    8 年前

    stdafx.h 是一个文件,由 Microsoft Visual Studio IDE向导, 它描述了两种标准系统 和特定项目 包含文件 经常使用但很少使用 永远改变 . 兼容的编译器(例如, Visual C++ 6和更新版 预编译此文件以减少 总编译时间 .

    Visual C++将 在 #include "stdafx.h" 在源文件中 ,除非编译选项 /Yu'stdafx.h' 未选中(由 默认);它假定 来源到并包括那条线 已编译。

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

        2
  •  13
  •   DavidRR    11 年前

    扩展其他优秀答案:

    stdafx.h 包含单个项目所有常用头的文件。例如,这将包括所有的Windows定义。因为这个文件包含太多东西,所以编译器在处理它时会有点慢。通过预编译,编译器可以跳过大部分的处理过程,并反复地重用它;只要它包含的所有文件都没有更改,预编译的结果也不需要更改。

    名字 STDAFX 只是一个惯例。如果您更改了所有源以包含新文件,则可以轻松地将其重命名为其他文件。

    要生成实际的预编译头文件,项目中需要一个具有特殊编译标志的源文件来生成预编译输出。按照惯例,此文件命名为 stdafx.cpp ,如果您检查该源文件的设置,您将看到它是如何不同的。

        3
  •  6
  •   Brian R. Bondy    14 年前

    它通常用于预编译头的名称。尽管不需要使用这个确切的名称,但默认值是。 I explain more about pre-compiled headers on VC++ and g++ here .

    使用预编译头可以更快地编译。

    其思想是将任何不会更改的头文件放在预编译头文件内的多个源文件中。那么编译器就不需要为每个编译单元重新处理这些头文件。

        4
  •  2
  •   Pavel Minaev    14 年前

    这是一个 precompiled header ,以减少编译时间。