這裏是一個C++函數:當一個函數缺少返回值時,編譯器會生成一個警告但不會出錯?
int FuncWithoutReturn()
{
int var = 10;
++var;
// No return value here !!!
}
在MSVC,編譯器會生成錯誤:
error C4716: 'FuncWithoutReturn' : must return a value.
但是XCode中5,編譯器只是吐出一個警告:
Control reaches end of non-void function
在運行時如果我很幸運,應用程序崩潰。我知道這是一個愚蠢的錯誤,但編譯器首先會產生錯誤會很好。
只是想知道任何人都知道爲什麼XCode認爲這是一個警告,而不是一個錯誤。
感謝您的回答,但有沒有任何情況下缺少返回值是故意的?我的意思是我的情況,那是一個錯誤。但是因爲編譯器認爲這個錯誤是默認的警告。我認爲必須有一個原因,爲什麼... – r0ng