Erros, bugs, perguntas - página 1654

 
Alexey Viktorov:
Хочешь сказать при закрытых графиках не скрывается символ?
Alexey Viktorov
:

Quer dizer que o símbolo não está escondido quando os gráficos estão fechados?

Sim. Já me deparei com este tipo de coisas algumas vezes.

 
Vitalii Ananev:

Ainda assim, a mensagem de erro está correcta.

Inicialmente não lhe prestei muita atenção, mas tendo-me deparado novamente com ela - há argumentos de que não é correcta. E aqui está a razão: mais além está o código condicional

int f()
{
        while ( true )
        {
//много строк c return, continue, без break
                return 0;
//много строк c return, continue, без break
                return 1;
//много строк c return, continue, без break
        }
        return Random(); //(*) написано по требованию MQL компилятора //строка 61
}

O que colocar depois enquanto (verdadeiro) {} se resume a isto: "Nunca estaremos lá de qualquer maneira... o retorno só é necessário formalmente - para que o compilador diga OK... Portanto - vamos lá pôr um valor aleatório - devolver Random();".

Após algum tempo fizemos algumas alterações no código e agora precisamos de acrescentar uma pausa no interior enquanto
Neste caso, o compilador dirá: "OK. Há código depois de enquanto(true) {}, o que significa que o caso de 'pausa' já estava previsto anteriormente e deve haver a mesma 'pausa' entre este conjunto de linhas. Todos os valores de retorno já tinham sido pensados nessa altura - não se preocupe!".
E no final obteremos um valor aleatório.

Mas se não houvesse cordel (*) no início, o compilador dirá: "Erro: Não... ...nem pensar... não houve pausa antes e precisamos de devolver algo deliberado".

Acontece que a cadeia (*) não só é excessiva como também aumenta a probabilidade de erros difíceis de encontrar

 
A100:

Inicialmente não lhe prestei muita atenção, mas ao deparar-me novamente com ele - havia um argumento de que não estava certo...

Além disso, neste seu exemplo, deverá normalmente receber um aviso de "código inacessível". O estúdio também não dá esse aviso, mas o compilador de Bordeaux deu, eu lembro-me.
 
Sergei Vladimirov:
Além disso, neste seu exemplo, deverá normalmente gerar o aviso de "código inacessível". O estúdio também não emite tal aviso, mas o compilador da Borland, lembro-me, emitiu.

Boa memória.

E a Borland não emite avisos sobre ninharias, o que mais uma vez prova os meus argumentos

 
A100:

E a Borland não dá avisos por nada...

Não estou de acordo consigo. :) Parece-me que é uma bagatela indigna de atenção. Basta ligar o retorno(0) e seguir em frente.

Além disso, em MCL é melhor usar sempre while(!IsStopped()) em vez de while(true), caso em que o retorno após o laço já é obrigatório.

 
Mais alguém tem problemas com a optimização da nuvem (e não só) ou foi apenas a minha "sorte" que deixou de trabalhar com a nova construção do MT5?
 
No meu editor, a lista de métodos disponíveis não desce depois do ponto. Isto é muito inconveniente para mim. Como posso corrigi-lo? Na versão antiga, a lista desceu.
 
vinnipyx:
No meu editor, a lista de métodos disponíveis não desce depois do ponto. É muito inconveniente para mim. Como posso corrigi-lo? Na versão antiga, caiu.
O mesmo problema. Tenho de começar a escrever de memória, e depois de um par de cartas cai, mas só a partir dessas cartas.
Isto é terrivelmente inconveniente.
 

Que tal isto

 
Vladimir Pastushak:

Que tal isto

talvez seja um construtor de estruturas? está lá de qualquer maneira