1

MS Visual Studio 2017,来自 VisualC++ 类别的新 Windows 控制台应用程序项目。默认stdafx.h标题包括以下行:

#include <stdio.h>
#include <tchar.h>

在他们下面:

// TODO: reference additional headers your program requires here

因为这个评论放在下面,而不是上面#include <stdio.h>,我倾向于认为stdio.h默认情况下包含它不是为了方便用户,他们可能#include无论如何都会这样做,但出于某种原因需要吗?stdio.h包含而不cstdio只是似乎支持这种解释的事实?

我对吗?我可以安全删除#include <stdio.h>吗?我问是因为我main函数的第一行是:

std::ios_base::sync_with_stdio(false);

如果无论如何都在使用来自的设施,这显然是不正确stdio的,因为包含此标头会暗示。

1)我可以安全地删除说的那行#include <stdio.h>stdafx.h

2)我可以安全地打电话std::ios_base::sync_with_stdio(false)吗?

tchar.h3)默认情况下也包括在内的事实是否与此相关?

4

2 回答 2

4

是的,您可以删除它。

您甚至可以将预编译头文件命名为不 stdafx.h,或者完全禁用预编译头文件。

这只是方便和示例。

于 2017-10-31T16:02:42.747 回答
0

如果你想使用它取决于你,但是在删除它之前阅读这个MSDN 关于预编译头文件

希望这可以帮助!

于 2017-11-02T07:18:11.353 回答