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

 
Artyom Trishkin:

Tudo está claro sobre a entrada. O problema do exterior - ali, como me parece, é possível primeiro declarar variáveis com o mesmo tipo e identificador em arquivos diferentes para serem anexadas ao projeto, e depois se descobre que não é possível declará-las dessa forma. É claro que isto é um impressionismo de três andares.

O significado de externo é que se o arquivo principal (principal) tiver alguma variável e outro arquivo estiver anexado a este arquivo. E neste arquivo anexo precisamos usar a variável declarada no arquivo principal, depois no arquivo anexo a declaramos como externa. Como resultado, o arquivo vinculado pode ser compilado e, quando o arquivo principal é compilado,a declaração da variável no arquivo vinculado é ignorada.

 
Alexey Viktorov:

Eu não sei. Para mim, toda a documentação é auto-explicativa. Se houver dificuldades em algum lugar, elas desaparecem após alguma experimentação.

Mas se eu não estou familiarizado com as operações bitwise, posso ler qualquer artigo que você queira... Não vou entender uma palavra disso. Assim como eu não conseguia entender nada sobre bandeiras e conjuntos de bandeiras até que a Artem me explicou com uma voz.

É compreensível se você exige valores dele, mas como tudo funciona antes e depois - a escuridão mais escura

 
Fast235:

é compreensível se o valor é exigido, mas como tudo funciona antes e depois é obscuro, o mais obscuro

Quem é ela?

 
Alexey Viktorov:

Quem é ela?

a essência do trabalho

 
Alena Lysenkova:

há:
1) obras externas somente em mql4.
2) comentários após a entrada serão exibidos nos parâmetros de entrada ao invés do nome da variável de entrada
input int ma_period = 20;
- dirá "ma_period".
input int ma_period = 20; // período MA
- será escrito "período MA".
para ser exatamente assim em mql4, é necessário o modo de compilação estrito #propriedade estrita.
Este truque está ausente com o exterior.
3) As variáveis externas podem ser alteradas em código como qualquer variável global, a entrada não pode.

Inicialmente, havia apenas mql4 e externo, nenhuma entrada estava presente, nem o OOP em mql4.
Então o mql5 foi criado e a entrada foi imediatamente incluída porque o mql5 em geral era orientado exatamente no OOP.
Cerca de 2-3 anos atrás, o mql4 foi atualizado com muitas características do mql5, incluindo a entrada.

Sobre que terminal você está escrevendo?

No MT5, se você declarar uma variável externa como externa no indicador, o indicador pode não poder ser chamado via iCustom().

 
Dmitry Fedoseev:

Sobre que terminal você está escrevendo?

No MT5, se você declarar uma variável externa como externa em um indicador, o indicador pode não poder ser chamado através de iCustom().

Não estou censurando agora, mas você escreve "pode falhar"... pode ou não funcionar! É difícil para mim, como autodidata sem educação especial, entender tal incerteza...

 
Alena Lysenkova:

existem:
1) o exterior só funciona em mql4.
2) comentários após a entrada aparecerão nos parâmetros de entrada ao invés do nome da variável de entrada
input int ma_period = 20;
- dirá "ma_period".
input int ma_period = 20; // período MA
- será escrito "período MA".
para ser exatamente assim em mql4, é necessário o modo de compilação estrito #propriedade estrita.
Este truque está ausente com o exterior.
3) As variáveis externas podem ser alteradas em código como qualquer variável global, a entrada não pode.

Inicialmente, havia apenas mql4 e externo, nenhuma entrada estava presente, nem o OOP em mql4.
Então o mql5 foi criado e a entrada foi imediatamente incluída porque o mql5 em geral era orientado exatamente no OOP.
Cerca de 2-3 anos atrás, o mql4 foi atualizado com muitas características do mql5, incluindo a entrada.

obras externas em ambos os casos. Assim como a entrada em MQL5 e MQL4. Seu propósito é diferente, e está escrito na ajuda.

Por que direcionar uma pessoa imediatamente para uma concepção errônea sobre o propósito das variáveis de entrada e externas?

 
Dmitry Fedoseev:

O significado de externo é que se o arquivo principal (principal) tiver alguma variável e outro arquivo estiver anexado a este arquivo. E neste arquivo anexo precisamos usar a variável declarada no arquivo principal, depois no arquivo anexo a declaramos como externa. Como resultado, o arquivo vinculado pode ser compilado, mas quando você compila o arquivo principal, a declaração da variável no arquivo vinculado é ignorada.

Também pensei que este modificador funciona como em C++, ou seja, é declarado no arquivo de inclusãohttps://www.mql5.com/ru/forum/160683/page867#comment_11927748

Verificado não funciona como deveria em C++


arquivo da biblioteca tstextern

//+------------------------------------------------------------------+
//| My function                                                      |
//+------------------------------------------------------------------+
extern int koef=1 ;
 int MyCalculator(int value,int value2) export
   {
    return((value+value2)*koef);
   }
//+------------------------------------------------------------------+

arquivo de roteiro:

#import "tstextern.ex5"
int MyCalculator(int value,int value2);
#import

extern int koef;

void OnStart()
  {
      koef = 666;
      int res = MyCalculator(100,200);
      Print("result = ",res);
   
  }
//+------------------------------------------------------------------+

qualquer manipulação da variávelkoef não faznada, ela ainda está no escopo local (dentro de cada arquivo)


Artyom Trishkin:

Seu propósito é diferente e está escrito na ajuda.

A diferença está no controle de acesso:

entrada - só pode ser lido, a escrita é proibida.

externo - pode ser lido e escrito, e após a reinicialização do programa MQL este valor será restaurado para o valor especificado em configurações externas

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2019.06.02
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 
Maksim Neimerik:

Não estou sendo negativo agora, mas você escreve "pode não funcionar"... pode não funcionar, mas pode funcionar! É difícil para mim, como autodidata sem educação especial, entender tal incerteza...

Quero dizer, eu ainda não verifiquei. E é perigoso dizer o que já esteve lá, porque as coisas mudam com tanta freqüência. Talvez tenha sido uma falha temporária.

 
Igor Makanu:

também pensou que este modificador funciona como em C++, ou seja, é declarado no arquivo de pluginhttps://www.mql5.com/ru/forum/160683/page867#comment_11927748

não funciona como deveria em C++


arquivo da biblioteca tstextern

arquivo de roteiro:

qualquer manipulação da variávelkoef não faz nada, ela ainda está no escopo local (dentro de cada arquivo)

Bem, você tem uma biblioteca. Naturalmente, haverá variáveis diferentes. O que se quer dizer é conexão de mqh via incluir.

Razão: