我在Eclipse中有类似下面的函数。但是,因为在while循环之外没有返回,Eclipse假定我可能有逻辑错误(可能它不能看到while的条件总是为真。
切换到do-while不会有帮助。有没有办法可以通过编程方式摆脱这种警告,即不是通过修改Eclipse IDE的设置。
int foo(...)
{
while (1) {
...
if(...)
return -1;
...
if(...)
return 0;
}
}
我在终端编译了相同的功能,没有任何警告。
答案 0 :(得分:2)
在结束括号之前添加return
语句,即使您希望永远不会达到它。
我在Visual Studio 2010中收到了类似的警告,并添加了一个显然无关的return
来解决问题。
答案 1 :(得分:0)
这是修复,使用返回值变量:
int foo(...)
{
int return_value = 0;
while (true)
{
//...
if (...)
{
return_value = -1;
break; // out of the while loop
}
if (...)
{
return_value = 0;
break;
}
}
return return_value;
}
一个入口点,一个出口点。