Características da linguagem mql5, subtilezas e técnicas - página 121
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
Não o compreendo então.
Fórum sobre comércio, sistemas automatizados de comércio e teste de estratégias comerciais
Peculiaridades de mql5, dicas e truques
Alexey Navoykov, 2019.01.14 16:35
Se precisar, pode declarar nula OnTick(); logo no início. Mas, em geral, a ordem de declaração de funções é uma forma adicional de controlar a correcção do código. Por exemplo, se nalgum plug-in telefonar OnTick() ou, pior ainda, OnInit() acontecer, será bom? As bibliotecas não devem ver o seu código de trabalho.Então não o compreendo
As declarações de avanço são apenas para classes e estruturas, não para funções.
A questão é que se as funções que vai utilizar estiverem especificadas no inlude, terá de as escrever de acordo com a sugestão, se o inlude estiver abaixo.
Qual é o problema de inserir um inluder mais cedo?
Pode ser inconveniente para um ficheiro (a função com corpo tem de ser antes da chamada), mas se a função em mqh - qual é o problema de inserir o inlude no início?
A declaração prévia é apenas para classes e estruturas, não para funções.
Isso é óptimo que o tenha esclarecido.
Qual é o problema de inserir um inluder mais cedo?
Pode ser inconveniente para um único ficheiro (uma função com um corpo necessariamente antes da chamada), mas se a função estiver em mqh - qual é o problema de inserir um inlude logo no início?
Algumas construções com macros têm por vezes exigido um inlude na última linha. Não vou dar-vos um exemplo específico, já os encontrei na prática muitas vezes.
As declarações de avanço são apenas para classes e estruturas, não para funções.
Algumas construções com macros por vezes necessitavam de um inlude na última linha. Não vou dar-vos um exemplo concreto, já os encontrei muitas vezes na prática.
Bem, isto é algo bastante exótico. Não creio que valha a pena sacrificar a correcção arquitectónica por causa delas.
De qualquer modo, o código do programa deve, em qualquer caso, ser executado exactamente de acordo com o seu algoritmo pretendido. O acesso a uma variável antes da sua inicialização é um disparate. Isto não deve ser compilado.
A propósito, se um inlude utiliza algumas funções que não estão lá, elas devem ser declaradas lá de qualquer maneira. Tal como as classes e variáveis externas. Caso contrário, é uma muleta, não um inlude.
De forma correspondente, o plug-in não deve depender do local onde está ligado.
A propósito, se algumas funções são utilizadas no inlude, que não estão lá, devem ser declaradas lá de qualquer maneira. Tal como as aulas e as variáveis externas. Caso contrário, não é um indício, mas uma muleta.
O que pensa que é um inlude? Para mim, é apenas um pedaço de texto, atribuído a um ficheiro separado. E a sua reintrodução na fonte é ignorada. Nada mais.
O que pensa que é um inlude? Para mim, é apenas um pedaço de texto, atribuído a um ficheiro separado. E a sua reintrodução na fonte é ignorada. Nada mais.
Penso que deveria ser um código independente e independente. Faz mais sentido, e é fácil de controlar, e fazer verificações independentes da sintaxe deste código. Mas se tudo está em ficheiros diferentes e não está claro de onde está a ser chamado, é o caos.
Bem, penso que deveria ser um código independente. Faz mais sentido e é mais fácil controlar e executar uma verificação independente da sintaxe deste código. E se tudo estiver espalhado pelos ficheiros e não estiver claro o que é chamado de onde - é o caos.
Apresentei exemplos do meu código. Não ouvi qualquer feedback sobre o caos, mesmo para os incúdios que não se compilam.