2017-05-08 35 views
0

我已经从VS2010移到VS2017。Visual C++ 2017 - 减少错误级别

该代码在VS2010中可编译,但在VS2017中引发一个错误 - C4703:可能未初始化的本地指针变量。它已初始化。

肮脏的解决办法,我用现在的问题是:

#pragma warning (disable:4703) 

,一切工作正常。

我的问题是如何降低“pedantry”的水平或如何以安全的方式解决这个问题?

+0

如何初始化变量?此警告发生的原因。 – VTT

+0

呃,你确实禁用了它。这不是一个错误,只是一个4级警告。用/ W4编译实际上并不容易,你几乎总是被迫禁用一堆喋喋不休的东西。大概以前的代码维护者已经这样做了。他们确实在新的编译器版本中添加了新的诊断程序,因此无论他做了什么都可能是不够的。/W3是一个理智的选择。 –

+0

这似乎是[XY问题](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。不要让你的肮脏的黑客工作,你应该发布*实际问题*。 – nvoigt

回答

0

不建议降低警告等级。

但是,如果你需要的话,可以这样做:

  1. 转到project properties -> C/C++ -> General -> Warning Level
  2. 将其设置为较低的值
+0

如果不推荐,我会很乐意以正确的方式解决它。但变量已初始化。其他建议? –

+0

@ lar.soo它通常是由您的变量只会在特定条件下初始化引起的。即你在'if'语句中有一个变量被初始化,它只会在'if'为真时被初始化。您可以显示导致此警告的代码,以便我们确定它发生的原因。 –