O que causa o erro de transbordo de pilha em mql4? - página 3

 
RaptorUK:
Mas ele pode lidar com uma função tão grande . . . como expliquei, mudar o tipo de função e não há erro de compilação para o mesmo tamanho de função . .


Então isso significa que uma função int requer mais recursos para ser executada? Talvez então as metaquotas possam fazer init, deinit e começar a ser vazias para que consumam recursos menores.
 
RaptorUK:
Mas ele pode lidar com uma função tão grande . . como expliquei, mudar o tipo de função e não há erro de compilação para o mesmo tamanho de função . .

... ou deixá-lo como um int e sair no retorno(0); e fazer isso para todas as chamadas ...

   ReturnedValue = ObCreate("EURUSDg",Column1xg,15,ZoomTimes);
   ReturnedValue = ObCreate("EURUSDa",Column1xa,15,ZoomTimes);

. . onde ReturnedValue é um int. . adivinhe o que ? nenhum erro de compilação.


Faça o código fazer sentido ... e ei presto, como se por magia o erro desaparecesse, esquisito eh ?

 
Uma função int que retorna 0 deve ser comparável a uma função vazia, o que significa que há algo.
 
tonny:

Então isso significa que uma função int requer mais recursos para ser executada? Talvez então as metaquotas possam fazer init, deinit e começar a ser vazias para que consumam recursos menores.
É claro que umafunção int precisa de mais recursos para executar ... para retornar um valor e esse valor tem que ser armazenado na memória para poder ser retornado. Já vi pessoas codificarem com init, start e deinit declarados como nulos . . não é algo que eu faça.
 
RaptorUK:

... ou deixá-lo como um int e sair no retorno(0); e fazer isso para todas as chamadas ...

. . onde ReturnedValue é um int. . adivinhe o que ? nenhum erro de compilação.


Faça o código fazer sentido . . . e ei presto, como se por magia o erro desaparecesse, esquisito eh ?


A função int também está retornando 0. De qualquer forma, o problema está resolvido, mas quanto ao erro, acho que ele aparece onde não deveria.
 
tonny:
Uma função int que retorna 0 deve ser comparável a uma função vazia, o que significa que há algo.
Não, não é . . . uma função vazia não retorna um valor . . 0, 1, 10000 valores tomam todos o mesmo espaço de memória para salvar . . . são todos do tipo int e um int usa 4 bytes. o vazio não retorna nada, que leva 0 bytes . . .
 
Isto significa que, mesmo com o vazio, se acrescentássemos mais objetos, ele chegaria ao ponto de tensão e causaria o erro novamente. Aí estamos de acordo?
 
Tomarei o silêncio como um sim. Caso encerrado.
 
tonny:
Isto significa que, mesmo com o vazio, se acrescentássemos mais objetos, ele chegaria ao ponto de tensão e causaria o erro novamente. Aí estamos de acordo?
Não, não estou de acordo.

Mas parece que você pode estar certo . . .
 
RaptorUK:
Não, eu não concordo.

Mas parece que você pode estar certo. . .

Agora estamos na mesma página.