photo
+ Responder ao Tópico
Resultados de 1 a 1 de 1

Thread: Preprocessador

  1. #1 Fechar a publicação
    Senior Member jssuser's Avatar jssuser's Avatar
    Data de afiliação
    Aug 2018
    Postagens
    1,503
    Obrigado
    209
    Agradecimentos 1,574 Tempos em 856 Postagens
    AssinarAssinar
    subscritar: 0

    Preprocessador

    Preprocessador é um subsistema especial do compilador MQL5 que é destinado à preparação do código fonte do programa imediatamente antes do programa ser compilado.

    O preprocessador permite melhorar a legibilidade do código fonte. O código pode ser estruturado por meio de inclusão de arquivos específicos contendo códigos fonte de programas-mql5. A possibilidade de atribuir nomes mnemônicos a constantes específicas contribui para melhoria da legibilidade do código.

    O preprocessador também permite determinar parâmetros específicos de programas MQL5:

    Declarar constantes
    Definir propriedades de programa
    Incluir arquivos no texto do programa
    Importar funções
    Conditional compilation
    As diretivas do pré-processador são usadas ​​pelo do compilador para pré-processamento do código fonte antes de sua compilação. A diretiva sempre começa com o # (jogo da velha), por isso o compilador proíbe o uso deste símbolo nos nomes das variáveis, funções, etc.

    Cada diretiva é descrita por um registro separado e opera antes da mudança de linha. Não se podem utilizar várias diretivas num só registro. Se o registro da diretiva for muito grande, ele pode ser dividido em várias linhas usando a barra invertida '\', neste caso, a próxima linha é considerada uma continuação do registro da diretiva.

    //+------------------------------------------------------------------+
    //| pseudo-operador foreach |
    //+------------------------------------------------------------------+
    #define ForEach(index, array) for (int index = 0, \
    max_##index=ArraySize((array)); \
    index<max_##index; index++)
    //+------------------------------------------------------------------+
    //| Script program start function |
    //+------------------------------------------------------------------+
    void OnStart()
    {
    string array[]={"12","23","34","45"};
    //--- rastreamento da matriz usando o ForEach
    ForEach(i,array)
    {
    PrintFormat("%d: array[%d]=%s",i,i,array[i]);
    }
    }
    //+------------------------------------------------------------------+
    /* Resultado de saída
    0: array[0]=12
    1: array[1]=23
    2: array[2]=34
    3: array[3]=45
    */

    Para o compilador, estas três linhas da diretiva #define aparecerão como uma linha longa. Neste exemplo, também é usado o caractere duplo do jogo da velha ##, ele é chamado operador de fusão e é usado nas macros #define, para combinar dois tokens numa macro. O operador de fusão de tokens não pode ser o primeiro ou o último na definição de macro.

    Though trading on financial markets involves high risk, it can still generate extra income in case you apply the right approach. By choosing a reliable broker such as InstaForex you get access to the international financial markets and open your way towards financial independence. You can sign up here.


  2. The Following User Says Thank You to jssuser For This Useful Post:

    Não registrado (1 )

+ Responder ao Tópico

Permissões de postagens

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts