Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
isto é chamado "loop unrolling" e é feito pelo compilador sem qualquer OO e modelos (pelo menos deveria ser).
Se você olhar para o código intermediário (assembler), há apenas operações N consecutivas em vez de um loop.
E você pode nos dizer o que acontece quando uma função é chamada recursivamente?
Você pode me dizer o que acontece quando uma função é chamada recursivamente?
não há chamada recursiva para as funções alvo :-)
No exemplo acima dado N:=const, a recorrência ocorre apenas quando o código é gerado a partir de um modelo e este é adaptado. No link, uma reviravolta inteligente é fazer cair o ciclo constante em recursividade de modelo e chamá-lo de palavra inteligente
se as macros tivessem loops, seria escrito assim
#for x=0, x<N, x++
print("x=%d",x);
#endfor
e após o macro processador se desdobraria em uma seqüência de N príncipes. (o que realmente aconteceu, apenas através de classes de modelos)
Ou seja, o truque só funciona se N for conhecido em tempo de compilação
e não há chamada recursiva para as funções alvo :-)
No exemplo dado no link N:=const, a recorrência é apenas na geração de código a partir de um modelo e aquele é a cauda. No link, uma reviravolta inteligente é fazer cair o ciclo constante em recursividade de modelo e chamá-lo de palavra inteligente
se as macros tivessem loops, seria escrito assim
#for x=0, x<N, x++
print("x=%d",x);
#endfor
e após o macro processador se desdobraria em uma seqüência de N príncipes. (o que realmente aconteceu, apenas através de classes de modelos)
Portanto, o truque só funciona se N for conhecido em tempo de compilação
Você não vai acreditar, mas eu sei como funcionam os modelos e o que N existe, e qual é o resultado. E minha pergunta sobre a chamada recursiva de função era exatamente sobre a chamada recursiva de função, não sobre como lá?
Você não vai acreditar, mas eu sei como funcionam os modelos e o que é o N e qual é o resultado. E minha pergunta sobre a chamada recursiva de função era exatamente sobre a chamada recursiva de função, não sobre como lá?
é como um exame de "ousadia"? :-) Eu de alguma forma pensei que este exemplo estava sendo discutido... Eu estava errado :-)
Se o compilador puder converter a recorrência em uma cauda (ou se for explicitamente isso, ou se lhe foi dito), então fisicamente não haverá recorrência - ele fará um laço (switch back) e cada iteração "pisoteará" a estrutura da pilha anterior.
isto é algum tipo de exame de "ousadia"? :-) Eu de alguma forma pensei que este exemplo estava sendo discutido...eu estava errado :-)
Se o compilador puder converter a recursividade em uma recursividade de cauda (ou se for explicitamente assim ou tiver sido dito para fazê-lo), então fisicamente não haverá recursividade - ele fará um laço (switch back) e cada iteração "pisoteará" a estrutura da pilha anterior.
O que isso tem a ver com fraqueza? Apenas uma pergunta. Bem, não, então não.
Eu não quero nem me incomodar. Eu fiz estruturas simples.
Por que razão o acesso ao primeiro campo de uma estrutura simples depende de seu tamanho - não entendo.
Huh. É trivial - o número de bits para multiplicação é mais)))) Certifique-se de que o número de bits na representação binária do tamanho da estrutura era o mesmo)))) Estúpido processador, assim como um homem, mais tempo para multiplicar 1111*101 do que 1111*10)
Eu não vou verificar, há muitas outras tarefas. Mas acho difícil de acreditar.
Em ME, eu trabalho com mqh, pressione ALT+N - a vista em árvore na janela do Navegador mostra a localização do arquivo.
Agora eu quero fazer seu inlude para abrir um arquivo mq5. Eu arrasto mqh da árvore para mq5, mas não é gerada nenhuma linha de inclusão apropriada.
Eu não vou verificar, há muitas outras tarefas. Mas acho difícil de acreditar.
É para uma estrutura pequena.
Isto é para um grande.
VS2019, Debug x64, em seu lançamento, os alinhou, mas a velocidade é a mesma.
A única diferença está nas instruções imul, o terceiro operando, em dois lugares. A instrução é apenas que, calculando o offset na matriz, e o terceiro operando éo tamanho da estrutura em bytes.
Portanto, sem misticismo - leis da física em ação.
Portanto, sem misticismo - as leis da física estão em ação.
se você escrever tais aulas:
A julgar por sua pesquisa, a classe B será mais lenta de executar se você usar campos de estrutura frequentemente nos cálculos?