A diferença entre externo e de entrada - página 6

 

Em geral, devemos começar com o fato de que as variáveis globais são más, e quando tal variável é usada em muitos arquivos e pode ser alterada de qualquer lugar, então é má ao quadrado! Portanto, tais variáveis devem ser sempre declaradas como constantes (a menos que estejamos falando de variáveis auxiliares para fins de depuração, que não afetam a lógica do algoritmo).

Portanto, se temos uma variável global constante, então temos uma conclusão óbvia: não é mais fácil adicionar parênteses no final e torná-la uma função, e assim obter flexibilidade na definição de qualquer implementação para esta função? E levando em conta que as variáveis externas na MQL estão subdesenvolvidas, como escrevi acima, não temos outras alternativas.
 
O especificador externo é necessário se o projeto consiste em vários arquivos mq5 (não confundir com mqh). Neste caso, faz sentido declarar variáveis globais em um arquivo separado. Se o projeto consiste em mqh e é construído usando #include, externo não é necessário, porque é um arquivo dividido em vários arquivos.
 
Vladimir Simakov:
O especificador externo é necessário se o projeto consiste em vários arquivos mq5 (não confundir com mqh). Neste caso, faz sentido declarar variáveis globais em um arquivo separado. Se o projeto consiste em mqh e é construído usando #include, não é necessário externamente, pois é um único arquivo dividido em vários arquivos.

exemplo é necessário, tentei usar o exterior em bibliotecas - não funcionahttps://www.mql5.com/ru/forum/316795/page2#comment_12259472

 
Igor Makanu:

exemplo é necessário, tentei usar o exterior em bibliotecas - não funcionahttps://www.mql5.com/ru/forum/316795/page2#comment_12259472

Não é para bibliotecas, é para projetos. O projeto pode ser construído em #incluir ou fazer vários arquivos mq5. No segundo caso, é necessário o externo para inserir variáveis globais no escopo de diferentes arquivos.
 
Vladimir Simakov:
Aqui, no segundo caso, você precisa de externo, que entraria com as variáveis globais no escopo de diferentes arquivos.

Eu não me importo, mas preciso de um exemplo, aqui você pode adivinhar onde usar externamente - eu tentei na biblioteca, não funcionou, mostre-me como você usa externamente

 
Vladimir Simakov:
Não é para bibliotecas, mas para projetos. O projeto pode ser construído em #incluir ou fazer vários arquivos mq5. No segundo caso, é necessário o externo para inserir variáveis globais no escopo de diferentes arquivos.
Como exatamente você insere variáveis no escopo? Os arquivos mq5 em um projeto são independentes, não estão conectados de forma alguma. A compilação de cada arquivo é independente, não é mesmo?
 
A questão é que o exterior acabou sendo simplesmente desnecessário. Uma variável declarada globalmente em qualquer arquivo de projeto está disponível em todos os seus arquivos. Mas por quê? Pergunta para os criadores.
 
Vladimir Simakov:
A questão é que o exterior acabou sendo simplesmente desnecessário. Uma variável declarada globalmente em qualquer arquivo de projeto está disponível em todos os seus arquivos. Mas por quê? Pergunta para os criadores.

Você pode declarar uma variável externa em todos os arquivos *.mqh, nos quais ela é utilizada.

Então, tais arquivos *.mqh não dependem do arquivo *.mq5 (ou outro *.mqh), no qual a variável global é declarada.
Isto permite que você utilize os arquivos em outros projetos, aumentando a reutilização do código.

 
Ilyas:

Você pode declarar variável externa em todos os arquivos *.mqh, nos quais ela é utilizada.

Então, tais arquivos *.mqh não dependem do arquivo *.mq5 (ou outro *.mqh), no qual a variável global é declarada.
Isto permite que você utilize os arquivos em outros projetos, aumentando a reutilização do código.

Obrigado, agora eu entendo a lógica. Originalmente eu pensava que era semelhante ao externo em C++.
 
Vladimir Simakov:
Obrigado, agora eu entendo a lógica. Originalmente eu pensava que era semelhante ao externo em C++.

Não é semelhante?

Razão: