Boa tarde, pergunta de 5 kopeck)))) Você pode me dizer o que significa o sinal "&" ao passar para uma função? Exemplo: int determineSection_D1(int & askSection_D1,int & bidSection_D1) ? Obrigado.
Boa tarde, como podemos fazer a atualização do gráfico automaticamente a cada 10 segundos para que você não tenha que pressionar o botão "Atualizar" toda vez?
Clique com o botão esquerdo na foto para ampliar ou clique com o botão direito e salvar
O MetaEditor tem ajuda para a linguagem MQL-4. Faz sentido ler tudo isso, ou pelo menos olhar através dele
Obrigado pela resposta. Não entendo isso até o fim. Por exemplo, eu tenho a função SendOrder(int &Ticket, int Type ,double LT ,double OP=-1 ,int ModeSL=0) com parâmetros. Além disso, se eu, por exemplo, em código, tentar me referir a ele em qualquer condição, recebo erro "parâmetro passado como referência, variável".
rabanik: se você for a .... erro "parâmetro passado como referência, variável".
Se o parâmetro é sem & transferido por valor, o que é mais confiável. O parâmetro real é copiado e uma cópia é passada para a função. As mudanças feitas no parâmetro dentro da função permanecem dentro da função. O parâmetro real no local da chamada de função permanece inalterado. E não importa para a função se uma constante ou variável é passada para ela, porque em qualquer caso somente uma cópia do parâmetro atinge a função. Isto é feito para aumentar a confiabilidade, para proteger as variáveis contra mudanças acidentais dentro de uma função.
Ao passar o parâmetro por referência, o & símbolo é especificado, e isto significa que a referência, o endereço da própria variável, é passado para a função. E a função pode mudar esta variável e estas mudanças afetarão o valor da variável dentro da função que chamou esta função. Bem, para que uma função altere o valor de um parâmetro, ela deve ser uma variável, o Tradutor provavelmente escreveu: parâmetro passado como referência, variável esperada = parâmetro por referência deve ser uma variável
Em caso de dúvida novamente, eu tenho a função SendOrder(int &Ticket, int Type ,double LT ,double OP=-1 ,int ModeSL=0) em vez disso, é melhor escrever como a função foi chamada. Parece que você passa um número como o primeiro parâmetro, o que não faz sentido. Neste parâmetro, sua função tenta devolver o número sob o qual o pedido foi colocado no banco de dados do corretor. Claramente, esta deve ser uma variável. Em caso de dúvida, dê uma olhada na função. E a função é VERDADEIRA para mudar o número que está sendo passado, quer uma variável naquele lugar.
Não seria mais fácil de entender a partir de um exemplo?
voidOnStart()
{
int a = 5;
int b = 7;
int c = f(a, b);
Print("a = ", a, ": b = ", b": c = ", c);
}
int f(int k, int n)
{
k += 2;
return(k+n);
}
//результат a = 5: b = 7: с = 14
A outra opção
voidOnStart()
{
int a = 5;
int b = 7;
int c = f(a, b);
Print("a = ", a, ": b = ", b": c = ", c);
}
int f(int &k, int n)
{
k += 2;
return(k+n);
}
//результат a = 7: b = 7: с = 14
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
O MetaEditor tem ajuda para a linguagem MQL-4. Faz sentido ler toda a ajuda ou pelo menos passar por ela
Boa tarde.
Fiz um botão na tela e quero anexar a ele uma abertura Offline Chart. Que função posso usar para especificar o caminho para a carta off-line desejada?
OnTimer() // Em temporizador JanelaRedraw(); // Rastrear novamente a janela
Clique com o botão esquerdo na foto para ampliar ou clique com o botão direito e salvar
O MetaEditor tem ajuda para a linguagem MQL-4. Faz sentido ler tudo isso, ou pelo menos olhar através dele
Obrigado pela resposta. Não entendo isso até o fim. Por exemplo, eu tenho a função SendOrder(int &Ticket, int Type ,double LT ,double OP=-1 ,int ModeSL=0) com parâmetros. Além disso, se eu, por exemplo, em código, tentar me referir a ele em qualquer condição, recebo erro "parâmetro passado como referência, variável".
Por favor, aconselhe o que fazer? Obrigado.
Se o parâmetro é sem & transferido por valor, o que é mais confiável. O parâmetro real é copiado e uma cópia é passada para a função. As mudanças feitas no parâmetro dentro da função permanecem dentro da função. O parâmetro real no local da chamada de função permanece inalterado. E não importa para a função se uma constante ou variável é passada para ela, porque em qualquer caso somente uma cópia do parâmetro atinge a função. Isto é feito para aumentar a confiabilidade, para proteger as variáveis contra mudanças acidentais dentro de uma função.
Ao passar o parâmetro por referência, o & símbolo é especificado, e isto significa que a referência, o endereço da própria variável, é passado para a função. E a função pode mudar esta variável e estas mudanças afetarão o valor da variável dentro da função que chamou esta função. Bem, para que uma função altere o valor de um parâmetro, ela deve ser uma variável, o Tradutor provavelmente escreveu: parâmetro passado como referência, variável esperada = parâmetro por referência deve ser uma variável
Em caso de dúvida novamente, eu tenho a função SendOrder(int &Ticket, int Type ,double LT ,double OP=-1 ,int ModeSL=0) em vez disso, é melhor escrever como a função foi chamada. Parece que você passa um número como o primeiro parâmetro, o que não faz sentido. Neste parâmetro, sua função tenta devolver o número sob o qual o pedido foi colocado no banco de dados do corretor. Claramente, esta deve ser uma variável. Em caso de dúvida, dê uma olhada na função. E a função é VERDADEIRA para mudar o número que está sendo passado, quer uma variável naquele lugar.
Não seria mais fácil de entender a partir de um exemplo?
A outra opção
esta é a diferença.