Erros, bugs, perguntas - página 2537

 

Se a função ::Print() produzir uma cadeia longa (mais de 260 caracteres) para a janela Toolbox/Experts, esta será truncada para 256 caracteres, copiando a cadeia com a função PCM/Copy.


Se, por outro lado, o copiar com PCM/Review/Copy, não é truncado.

Qual é a diferença?

 
A100:

Estou a ver que sim.

#define  MACRO( ТОЛЬКО_НЕ_void )    Print( "OK" )
void OnStart() { MACRO(); }

Hmm, é complicado...... Diga olá aos EEJAMS!

#define    test(int) for(int i=0;i<10;i++) Print("OK");
//+------------------------------------------------------------------+
void OnStart()
  {
  test();
  }

'i' - identificador não declarado tst.mq5 16 3

A opção nula funcionará sem qualquer problema, mas lembre-se de tirar a folha de alumínio.
 
A100:

Estou a ver que sim.

#define  MACRO Print( "OK" )
void OnStart() { MACRO; }

Os parênteses após o macro fazem-no sentir-se melhor?

E sim, utilizar palavras reservadas na declaração de macro parâmetros é amor às condições prévias de grandes bugs. Bem, cada um decide por si próprio como disparar das suas pernas, ainda bem que os criadores não nos asseguraram realmente desta acção fascinante, e eles estão-lhes gratos))))

Finalmente, descobrir qual o parâmetro macro e como é utilizado.

 
Igor Makanu:

hmm, é complicado para si...... Cumprimentem os Ouriços!

'i' - identificador não declarado tst.mq5 16 3

A variante vazia funcionará sem problemas, mas deverá saber melhor.
void OnStart()
  {
  for(i=0;i<10;i++) Print("OK");;
  }

Isto é o que o pré-processador produz para si.

PS dois; - este não é o meu erro de digitação, será realmente depois do pré-processador.
 
Igor Makanu:

A versão nula funcionará sem qualquer problema, mas o senhor é que sabe, não se esqueça de tirar a folha de alumínio.

Neste caso em particular, funcionará, mas não no caso geral. Ninguém precisa das piores soluções para casos privados. Por void significava qualquer palavra-chave, no caso de ainda não ter compreendido

 
Vladimir Simakov:

Os parênteses depois de uma macro fazem-no sentir-se melhor?

Mas sim, usar palavras reservadas na declaração de parâmetros macro é amor às condições prévias de fazer enormes bugs. Bem, cada um decide por si próprio como disparar das suas pernas, o que é bom, os criadores não estão bem seguros desta excitante acção, pelo que respeitam))))

Finalmente, descobrir qual o parâmetro macro e como é utilizado.

Tenho um argumento de ferro para si: "Tudo funciona bem em C++". Tem algo a responder-lhe? Não? - Depois mantenha os seus ensinamentos morais para si próprio. E é melhor descobri-lo - se não compreender para que servem os parênteses.

P.S. FoiIgor Makanuquem osugeriu- escreva-lhe sobre isso
 
A100:

Neste caso em particular, funcionará, mas não no caso geral. As piores soluções para casos especiais - ninguém precisa delas. nulo significava qualquer palavra-chave, se ainda não entendeu

Muito bem, vá em frente, não é agradável falar consigo. Sinto-me sempre atraído por personalidades, estou mais interessado em temas técnicos neste fórum

Vladimir Simakov:

Foi isso que o pré-processador lhe deu.

PS dois ; - não é a minha impressão errada, será realmente depois do pré-processador.

Eu sei do que se trata;

a questão era puramente técnica - como fazer as coisas bem

usei qualquer tipo, esperava alguma treta - funcionou bem, uso-o raramente (na maioria das vezes escrevo a ordem de envio como BUY(double lot) ou simples BUY() macro) - Sempre usei o vazio aqui - não houve problemas e não deveria haver

 
A100:

Tenho um argumento de ferro para si: "Tudo funciona bem em C++". Tem alguma coisa que o contradiga?

E depois há o C#, JS e todo o resto. Só aqui está o mql, e tem isto.
 
Igor Makanu:

Muito bem, mantenha-se ocupado, não é agradável falar consigo. Tem sempre tendência a saltar para personalidades, estou mais interessado neste fórum sobre tópicos técnicos.

Não é agradável? Temas técnicos de interesse? A julgar pela sua mensagem, compreendo que está mais interessado no tema da S&M. Eu comunico consigo - na sua língua - usando o seu vocabulário

 
Vladimir Simakov:
E depois há o C#, JS e todos os outros. Só aqui está o mql, e é assim.

O que é que o C#, JS e todo o resto tem a ver com isso? Leia a documentação MQL - página 1:

"A sintaxe da MQL5 é semelhante à da C++".

https://www.mql5.com/ru/docs/basis.

Документация по MQL5: Основы языка
Документация по MQL5: Основы языка
  • www.mql5.com
Язык MetaQuotes Language 5 (MQL5) является объектно-ориентированным языком программирования высокого уровня и предназначен для написания автоматических торговых стратегий, пользовательских технических индикаторов для анализа разнообразных финансовых рынков. Он позволяет не только писать разнообразные экспертные системы, предназначенные для...