错误、漏洞、问题 - 页 1643

 
A100:

编译错误:')'。- 不是所有的控制路径都会返回一个值

你没有让代码的所有分支都返回一个值。

int f()
{
 int res = 0;
        while ( true ) //или for(;;)
        {
//много строк c return, continue, без break
                res = 0;break или continue
//много строк c return, continue, без break
                res = 1;break или continue 
        }
return(res);
}

或者像这样。

int f()
{
        while ( true ) //или for(;;)
        {
//много строк c return, continue, без break
                return 0;
//много строк c return, continue, без break
                return 1;
        }
  return(значение возвращаемое по умолчанию если не выполнены предыдущее return);
}
 
Vitalii Ananev:

你没有让代码的所有分支都返回一个值。

在他的例子中,所有的人都是如此。你只能用break(它没有这个功能)或return退出while(true)。
 
Sergei Vladimirov:
在他举的例子中,所有的人。退出while(true)的唯一方法是使用break操作符(它没有)或返回。
我不打算争论。但是编译器的错误信息')'- 不是所有的控制路径都会返回一个值,说的就是这个。
 
Vitalii Ananev:
我不打算争论。但编译器的错误信息')'- 不是所有的控制路径都会返回一个值,说的就是这个。
在C++中尝试同样的事情
 
A100:
在C++中尝试同样的事情

C++与此有什么关系?

....

更仔细地看了你的代码。你漏掉了一个错误:运算符return的 返回值应该写在括号里。return(0),但你写的是返回0。

 
Vitalii Ananev:

C++与此有什么关系?

此外,C++在这种情况下充当了某种模式。
维塔利-阿纳涅夫

更仔细地看了你的代码。你漏掉了一个错误--返回运算符的 返回值应该写在括号里。return(0),但你写的是返回0。

但为什么会有不必要的括号呢?
 
A100:
虽然C++在这种情况下充当了一个引用

所以你用C++写,然后用mql编译?

为什么要有额外的托架?

这就是mql语言的语法

 
Vitalii Ananev:

所以你用C++写,然后用mql编译?

这就是mql语言的语法

你可以返回一个不带括号的值。试试就知道了。
 
Artyom Trishkin:
你可以返回一个不带括号的值。试试就知道了。
是的,它可以编译,但我总是用圆括号来写它。这已经是一种习惯,成为一种规则。
 
Vitalii Ananev:

所以你用C++写,然后用mql编译?

这就是mql语言的语法

你是否从遥远的过去来到我们身边?)