Erros, bugs, perguntas - página 1643

 
A100:

Erro de compilação: ')". - nem todos os caminhos de controlo devolvem um valor

Não tem todos os ramos do código a devolver um valor:

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

Ou assim:

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

Não tem todos os ramos do código a devolver um valor.

No seu exemplo, todos eles o fazem. Só pode sair enquanto(true) com pausa (que não tem) ou regressar.
 
Sergei Vladimirov:
No exemplo que ele dá, todos eles. A única forma de sair enquanto (verdadeiro) é com pausa (que não tem) ou regressar.
Não vou discutir. Mas a mensagem de erro do compilador ') - nem todos os caminhos de controlo devolvem um valor, diz o contrário.
 
Vitalii Ananev:
Não vou discutir. Mas a mensagem de erro do compilador ') - nem todos os caminhos de controlo devolvem um valor, diz o contrário.
Tente a mesma coisa em C++
 
A100:
Tente a mesma coisa em C++

O que é que o C++ tem a ver com isto?

....

Veja o seu código mais de perto. Falhou um erro: o valor de retorno pelo operador de retorno deve ser escrito entre parênteses. return(0) mas escreveu return 0;

 
Vitalii Ananev:

O que é que o C++ tem a ver com isto?

Além disso, o C++ actua como um certo modelo neste caso.
Vitalii Ananev:

Veja o seu código mais de perto. Falhou um erro - o valor de retorno por operador de retorno deve ser escrito entre parênteses. return(0) mas escreveu return 0;

Porque é que existem parênteses desnecessários?
 
A100:
Enquanto C++ actua como uma referência neste caso

Então escreve em C++ e compila tudo em mql?

Porquê os parênteses extra?

Esta é a sintaxe da linguagem mql.

 
Vitalii Ananev:

Então escreve em C++ e compila tudo em mql?

Esta é a sintaxe da linguagem mql.

Pode devolver um valor sem parênteses. É só experimentar.
 
Artyom Trishkin:
Pode devolver um valor sem parênteses. É só experimentar.
Sim, compila, mas eu escrevo sempre com parênteses. É já um hábito que se tornou uma regra.
 
Vitalii Ananev:

Então escreve em C++ e compila tudo em mql?

Esta é a sintaxe da linguagem mql.

Veio até nós de um passado distante? )
Razão: