C++ 如何消除此Eclipse警告?

C++ 如何消除此Eclipse警告?,c++,eclipse,warnings,C++,Eclipse,Warnings,我有一个类似于Eclipse中下面的函数。然而,由于while循环之外没有返回,Eclipse假设我可能有一个逻辑错误(可能它看不到while的条件总是正确的) 切换到do-while不会有帮助。是否有任何方法可以通过编程消除此警告,即不通过修改EclipseIDE的设置 int foo(...) { while (1) { ... if(...) return -1; ... if(...)

我有一个类似于Eclipse中下面的函数。然而,由于while循环之外没有返回,Eclipse假设我可能有一个逻辑错误(可能它看不到while的条件总是正确的)

切换到do-while不会有帮助。是否有任何方法可以通过编程消除此警告,即不通过修改EclipseIDE的设置

int foo(...)
{
    while (1) {
        ...

        if(...)
            return -1;

        ...

        if(...)
            return 0;
    }
}

我在终端中编译了相同的函数,没有任何警告。

在右大括号之前添加一个
return
语句,即使您认为它永远不会到达。
我在Visual Studio 2010中收到了类似的警告,并添加了一个明显无关的
返回
修复了该问题。

以下是修复方法,使用返回值变量:

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;
}

一个入口点,一个出口点。

不,这不会解决问题。可能Eclipse认为我可能根本不会进入while循环。或者你指的是函数的结束大括号?(如果是,可以看到我在问题中已经提到:)。我指的是函数的结束大括号。我确实看到您声明在
while循环
之外没有
返回
;在语义上,它似乎没有必要。但编译器在检查
return
语句时有点过于热心(或不够彻底),这种情况并不少见。添加这样的语句只会让编译器停止抱怨它认为的问题也是很好的编程实践。