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)
吗?
3)默认情况下,tchar.h
是否也包含在这里这一事实是什么?
答案 0 :(得分:5)
是的,你可以删除它。
您甚至可以将预编译头命名为stdafx.h,或者根本禁用经过编译的头。
开始时只是方便和示例。
答案 1 :(得分:0)
如果您想使用它,由您决定,但在删除之前请阅读此MSDN about precompiled Header Files
希望这有帮助!