如果我使用普通文本编辑器或 Code::Blocks,则不会出现此问题。 但是在 visual studio 中,我必须包含 stdafx.h 头文件才能正确编译程序。我想知道这个头文件的用途是什么以及为什么它在 visual studio 中。 我正在使用 visual studio enterprise (2015)。
最佳答案
StdAfx.h 是在使用 Visual Studio 的 New 创建标准项目时用于生成预编译 header (参见 Creating Precompiled Header Files )的默认文件名项目向导。通过转储已解析和预编译 header 的二进制表示,预编译 header 可以显着减少编译项目所需的时间。通常,只有很少更改的 header 应该包含在预编译 header 中(Windows SDK header 、C++ 标准库 header 、CRT header 等)。
预编译 header 的使用通过 /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/