![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Tem"possível utilização de variável não-inicializada 'local_low'".
O que é que diz se
Releia as minhas respostas do ponto de vista de um gestor de uma empresa de software que trouxe muitos projectos de software para o mercado.
Caso contrário, permanecendo ao nível de "qualquer programador", não compreenderá qual é o erro.
:) Uma vez que nunca serei o chefe de uma empresa de software, permanecerei para sempre ao nível de "qualquer programador" (ou seja, um programador amador, no meu entender).
...E como o programador amador nunca obtém uma descrição lógica do erro, conclui que ou simplesmente não há erro no seu pedaço de código ou o erro é tão complicado que ninguém o pode descrever na linguagem da lógica. Neste momento, podemos considerar que ambos os lados se entendem, a questão está terminada.
Se a variável for inicializada com qualquer coisa, o aviso desaparece. Mas, como pode ver por si próprio, a inicialização da variável local_low é redundante neste pedaço de código. Assim, o aviso não interfere em nada com a vida.
... O compilador terá de ser tão"infalível" quanto possível.
... não escrever se (a===verdadeiro) ...
Mas devido ao uso de interrupção bool-variável na linha 9 logo após a inicialização da variável local_low na linha 8, verifica-se que na linha 15 a variável local_low terá a garantia de ser inicializada. Assim, neste ponto, o aviso "possível utilização da variável não inicializada 'local_low'" não significa "garantida" mas apenas a possível presença de um ramo de passagem em que a variável não é inicializada.
Se enviarmos um pedido para modificar uma posição com as mesmas paragens, receberemos um erro. Mas se enviar um pedido para modificar uma ordem pendente com os mesmos parâmetros, o pedido será executado. É assim que o planeámos e não precisamos de verificar os parâmetros para alterações?
Porquê entupir o servidor com pedidos desnecessários, por exemplo, em caso de erro no Expert Advisor ou lógica incorrecta do seu funcionamento?
No seu exemplo, se Ac-k=0 , então a declaração para declaração não será executada de todo e o local_baixo é garantido não-inicializado. Ou será errado?
É exactamente isso. Se Ac-k<=1, o para operador não deve ser executado de todo e a variável local_baixa é garantida para permanecer não-inicializada. Mas como a interrupção bool-variável permanece falsa (linha 3), em virtude da condição na linha 13, a variável não-inicializada local_low nunca (nunca deve) ser utilizada nos cálculos. Em particular, uma expressão com a variável local_low da linha 15 não deve ser avaliada [a menos, claro, que a declaração if funcione exactamente como indicado na ajuda:) ].
Por outras palavras, se for garantido que a variável local_low não será inicializada, também é garantido que não será (não deverá) utilizada nos cálculos.