2017-05-08 53 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'爲真時被初始化。您可以顯示導致此警告的代碼,以便我們確定它發生的原因。 –