我已經從VS2010移到VS2017。Visual C++ 2017 - 減少錯誤級別
該代碼在VS2010中可編譯,但在VS2017中引發一個錯誤 - C4703:可能未初始化的本地指針變量。它已初始化。
骯髒的解決辦法,我用現在的問題是:
#pragma warning (disable:4703)
,一切工作正常。
我的問題是如何降低「pedantry」的水平或如何以安全的方式解決這個問題?
我已經從VS2010移到VS2017。Visual C++ 2017 - 減少錯誤級別
該代碼在VS2010中可編譯,但在VS2017中引發一個錯誤 - C4703:可能未初始化的本地指針變量。它已初始化。
骯髒的解決辦法,我用現在的問題是:
#pragma warning (disable:4703)
,一切工作正常。
我的問題是如何降低「pedantry」的水平或如何以安全的方式解決這個問題?
不建議降低警告等級。
但是,如果你需要的話,可以這樣做:
project properties -> C/C++ -> General -> Warning Level
如果不推薦,我會很樂意以正確的方式解決它。但變量已初始化。其他建議? –
@ lar.soo它通常是由您的變量只會在特定條件下初始化引起的。即你在'if'語句中有一個變量被初始化,它只會在'if'爲真時被初始化。您可以顯示導致此警告的代碼,以便我們確定它發生的原因。 –
如何初始化變量?此警告發生的原因。 – VTT
呃,你確實禁用了它。這不是一個錯誤,只是一個4級警告。用/ W4編譯實際上並不容易,你幾乎總是被迫禁用一堆喋喋不休的東西。大概以前的代碼維護者已經這樣做了。他們確實在新的編譯器版本中添加了新的診斷程序,因此無論他做了什麼都可能是不夠的。/W3是一個理智的選擇。 –
這似乎是[XY問題](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。不要讓你的骯髒的黑客工作,你應該發佈*實際問題*。 – nvoigt