Características da linguagem mql5, subtilezas e técnicas - página 120

 
Penso que eles queriam filtrar a reconexão. Não me lembro como acabou.
 
Andrey Khatimlianskii:
Parece que eles queriam filtrar as habilitações repetidas. Não me lembro como acabou.

Parece ter sido sempre filtrado dessa forma. Pelo menos enquanto me conseguir lembrar. Mas #ifndef ainda é mais seguro, porque se o mesmo ficheiro for incluído através de caminhos diferentes (ligação simbólica/rígida), ME não compreende que é o mesmo ficheiro.

Por outro lado, esta é também uma espada de dois gumes. Se se verificar que os ficheiros são realmente diferentes (versões diferentes), então pode haver confusão, ninguém sabe que ficheiro está incluído, pelo que os criadores precisam de corrigir isto, para filtrar não por caminho de ficheiro simbólico, mas por caminho real.

 
Talvez a questão seja sobre bibliotecas e não sobre inluders?
 
SemenTalonov:

é estranho que as directivas sejam colocadas e não utilizadas

Uso semelhante, mas é quase insano prescrever isto para cada mqh.

Andrey Khatimlianskii:
Parecia que eles queriam filtrar a reactivação. Não me lembro como acabou.

A re-inserção é ignorada.

TheXpert:
Talvez a questão seja sobre bibliotecas e não sobre inluders?

Nunca trabalhei com bibliotecas ex4/5, por isso estava a referir-me a inluders.

 
fxsaber:

A reactivação é ignorada.

Qual é o problema com

Fórum sobre comércio, sistemas de comércio automatizados e testes estratégicos

Características da linguagem mql5, subtilezas e truques

fxsaber, 2019.01.14 17:30

O que fazer ao ligar bibliotecas, cada uma das quais liga as mesmas bibliotecas dentro de si mesma?


?

 
Andrey Khatimlianskii:

Qual é então o problema com isso?

Não há nada de errado com ele agora, mas foi sugerido o cancelamento se eu entendesse correctamente.

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

Peculiaridades da linguagem mql5, dicas e truques

Alexey Navoykov, 2019.01.14 15:26

Em C++ o código é processado pelo compilador estritamente de cima para baixo, por isso tudo de cima já está inicializado. E não se pode endereçar para baixo. É por isso que tudo é claro. E uma vez que os criadores introduziram aqui algumas regras próprias, deixem-nos assegurar a ordem correcta de execução do código.

 
fxsaber:

Está bem agora, mas foi sugerido que deveria ser cancelado, se bem entendi.

Qual é a ligação com os inlúdios?
 
fxsaber:

Não há nada de errado com isso agora, mas foi sugerido que deveria ser cancelado, se bem entendi.

Não, foi mal compreendido.

Foi sugerido que o pré-processador processasse o código em ordem. Neste caso, os inlúdios são inseridos no código no local da primeira menção, da mesma forma.
 
Andrey Khatimlianskii:

Não, está enganado.

O pré-processador foi sugerido para tratar o código em ordem. Ao mesmo tempo, os inlúdios são inseridos no código no lugar da primeira menção.

A questão é que se as funções que pretende utilizar estiverem especificadas no inlude, terá de as escrever de acordo com a sugestão, se o inlude estiver abaixo.

 
fxsaber:

A questão é que se tiver especificado funções nos inlúdios que vai utilizar, terá de as escrever de acordo com a ordem sugerida, se os inlúdios estiverem abaixo.

//gcc 5.4.0

int main(void)
{
    g();
    return 0;
}

void g() {f();}

void f() {}

Disse sobre a ordem, mas esqueceu-se da passagem múltipla.

e parece que há um par de UBs com a encomenda