这里是一个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