如果我使用普通的文本编辑器或 Code::Blocks,则不会出现此问题。但在 Visual Studio 中,我必须包含 stdafx.h 头文件才能编译程序而不会出错。我想知道这个头文件的用途以及为什么它在 Visual Studio 中。我正在使用视觉工作室企业(2015)。
user5543585
问问题
7497 次
1 回答
5
当使用 Visual Studio 的新建项目向导创建标准项目时,StdAfx.h是用于生成预编译头文件的默认文件名(请参阅创建预编译头文件)。通过转储已解析和预编译的标头的二进制表示,预编译标头可以显着减少编译项目所需的时间。通常,预编译的头文件中应该只包含很少更改的头文件(Windows SDK 头文件、C++ 标准库头文件、CRT 头文件等)。
预编译头文件的使用是通过/Y(预编译头文件)编译器开关控制的。如果您不想使用预编译头文件,请确保在项目设置中既没有设置/Yc(创建预编译头文件)也没有设置/Yu(使用预编译头文件) 。
如果您想使用预编译头文件,但不想(或不能)将预编译头文件作为第一个包含在所有编译单元中,则可以改用/FI(命名强制包含文件)编译器开关。
于 2015-12-17T15:21:40.643 回答