stdafx.h的目的

ckv*_*ckv 38 c++ precompiled-headers stdafx.h visual-c++

该文件的目的是stdafx.h什么,预编译头文件的含义是什么?

Jor*_*ira 29

stdafx.h是一个由Microsoft Visual Studio IDE向导生成的文件,它描述了经常使用但几乎不会更改的标准系统和项目特定包含文件.兼容的编译器(例如,Visual C++ 6.0和更新版本)将 预编译此文件以减少总体编译时间.

Visual C++不会#include "stdafx.h"在源文件之前编译任何内容 ,除非/Yu'stdafx.h'取消选中编译选项 (默认情况下); 它假设源中包含该行的所有代码都已编译.

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

  • 关于编译器在`#include"stdafx.h"之前忽略所有内容的那一点非常重要.我以前被烧过. (13认同)

Mar*_*som 13

扩展其他优秀答案:

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

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

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


Bri*_*ndy 6

它通常用于预编译头的名称.虽然不需要使用该确切名称,但只需使用默认名称. 我在这里解释了有关VC++和g ++的预编译头文件的更多信息.

您可以使用预编译头来加快编译速度.

这个想法是你放置任何不会改变的头文件,并且你在预编译头中的几个源文件中使用它.然后编译器将不需要为每个编译单元重新处理这些头.