Características da linguagem mql5, subtilezas e técnicas - página 118
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
A propósito, cerca de zero, FastLog2 não verifica o zero, o que lhe dá um avanço. Mas ainda é 1,5-2 vezes mais lento que o log2 se testado correctamente).
E o que há de errado nisso?
Porque até a sua versão do teste produz:
A propósito, cerca de zero, FastLog2 não verifica o zero, o que lhe dá um avanço. Mas ainda é 1,5-2 vezes mais lento que o log2, se testado correctamente).
Claro, devemos remover a verificação zero do log2 ou adicionar a mesma ao FastLog2.
A questão é realmente sobre a velocidade da parte computacional. Em log2, tudo é calculado puramente por turnos e adições. FastLog2 utiliza valores de tabela após conversões inteligentes envolvendo multiplicação. Este código é muito antigo, era utilizado nos tempos dos coprocessadores de matemática, a situação pode muito bem ter mudado desde então.
Este é o comportamento padrão da MQL5: as variáveis estáticas vêm depois das variáveis globais.
Pode ficar muito confuso por causa disto.Este é o comportamento padrão da MQL5: as variáveis estáticas começam depois das variáveis globais.
É por isso que cada variável estática de uma classe/estrutura tem de ser declarada após a própria estrutura? E mesmo sem lhe atribuir qualquer valor... Talvez devêssemos sugerir que o compilador faça tudo isto automaticamente?
Isto é essencialmente um bug, uma sequência incorrecta de execução do código do programa. O compilador não deve permitir isto em princípio. Deve-se gritar mais vezes com os programadores sobre isto.
Em C++ o código é processado pelo compilador estritamente de cima para baixo, pelo que tudo o que vem de cima já está inicializado. E não se pode aceder ao código de baixo. É por isso que tudo é claro. E desde que os criadores introduziram aqui as suas próprias regras, deixem-nos fornecer a ordem correcta de execução do código.
Em C++, o código é processado pelo compilador estritamente de cima para baixo, por isso qualquer coisa em cima já está inicializada. E não se pode aceder ao de baixo. É por isso que tudo é claro.
Há menos flexibilidade.