如果我使用普通文本编辑器或 Code::Blocks,则不会出现此问题。
但是在 Visual Studio 中,我必须包含 stdafx.h 头文件才能编译程序而不会出错。我想知道这个头文件的用途是什么,以及为什么它在 Visual Studio 中。
我正在使用 Visual Studio Enterprise (2015)。

最佳答案

StdAfx.h 是使用 Visual Studio 的新建项目向导创建标准项目时用于生成预编译头(请参阅 Creating Precompiled Header Files )的默认文件名。通过转储已解析和预编译头的二进制表示,预编译头可以显着减少编译项目所需的时间。通常,预编译头文件中只应包含很少更改的头文件(Windows SDK 头文件、C++ 标准库头文件、CRT 头文件等)。

预编译头文件的使用是通过 /Y (Precompiled Headers) 编译器开关控制的。如果您不想使用预编译头文件,请确保在您的项目设置中既没有设置 /Yc (Create Precompiled Header File) 也没有设置 /Yu (Use Precompiled Header File)

如果您想使用预编译头文件,但不想(或不能)将预编译头文件作为第一个包含在所有编译单元中,您可以改用 /FI (Name Forced Include File) 编译器开关。

关于c++ - 为什么我必须在 Microsoft Visual Studio C++ 应用程序中#include "stdafx.h"?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33797157/

10-11 22:51
查看更多