嗨,我有一個問題。控制達到非void函數的結束是xcode上的錯誤,但在gcc上沒有錯誤
bool testFunction(int arg) { int value = arg; }
這個函數在gcc &上沒有錯誤,只會發生警告。
但在xcode中,此源是錯誤。 「控制到達非虛函數結束」
我不知道爲什麼xcode中會出現錯誤。
確定將Warning Warning as Errors選項設置爲xcode中的NO。
謝謝。
嗨,我有一個問題。控制達到非void函數的結束是xcode上的錯誤,但在gcc上沒有錯誤
bool testFunction(int arg) { int value = arg; }
這個函數在gcc &上沒有錯誤,只會發生警告。
但在xcode中,此源是錯誤。 「控制到達非虛函數結束」
我不知道爲什麼xcode中會出現錯誤。
確定將Warning Warning as Errors選項設置爲xcode中的NO。
謝謝。
在C++中,從non-void
函數返回任何內容都是未定義的行爲。
請記住,編譯器不應該從代碼中消除UB。他們根本無法檢測到所有UB模式;他們只有在「懷疑」時纔會發出警告。
該模式保留「允許」的事實是爲了與舊代碼向後兼容。這是程序員的責任。
在大多數(即使不是全部)編譯器中,都可以將此特定警告設置爲錯誤。此選項不是「將所有警告視爲錯誤」。它似乎是在您的XCode環境中設置的。有關如何在XCode中找到此選項,請參閱this thread。
謝謝你的好消息。頭文件中的類中存在以上源。並沒有使用它,但是如果我使用這種功能,就會發生錯誤,我希望erorr發生在vs中,即使這個函數沒有使用(因爲其他人犯了同樣的錯誤)。可能嗎??? –
不是庫,擁有我的代碼。和VS版本是2012 :) –
您使用哪個版本的VS?在我的VS2015中,這是一個錯誤。 –
不同的編譯器對不同的事情發出警告。 在這種情況下應該真的發生錯誤或警告,因爲你的函數應該返回一個值。
如果將-Wall或-Wreturn-type標誌添加到g ++中,您將收到警告。 您可以通過調整構建設置「不匹配返回類型」值來完成Xcode中的等效功能。有三個設置。
見所附截圖。
關閉這個選項可能會導致您丟失其他錯誤,所以這將是最好把它留在警告至少設置。
@성정민如果問題解決了,請選擇正確的答案。如果不讓我們知道是否還有其他問題。這也將有所幫助,因爲它可以讓用戶關注未解決的問題。謝謝 – ccpgh
謝謝!但是,我認爲更重要的視覺工作室發生錯誤比解決ios錯誤。因上述來源錯誤來源和不良情況。所以,我需要出現錯誤在對比:) –
你剛剛返回一個值怎麼樣? –
哈哈。你的評論是正確的。但是,我沒有寫出這個來源。許多人犯類似的錯誤,所以我想要一個錯誤。 :) –
哦,我以爲你想消除錯誤信息。我的錯。繼續! –