mql4でスタックオーバーフローエラーが発生する原因は何ですか? - ページ 3

 
RaptorUK:
しかし、そのような大きな関数を扱うことができます ... 説明したように、関数の型を変えれば、同じ大きさの関数でもコンパイルエラーは発生しません ...


ということは、int型関数は より多くのリソースを実行に必要とするということでしょうか?多分、metaquotesはinit, deinit, startをvoidにすることで、より少ないリソースを消費するようにできるのでしょう。
 
RaptorUK:
しかし、そのような大きな関数を扱うことができます ... ... 私が説明したように、関数の型を変えれば、同じ大きさの関数でもコンパイルエラーは発生しません ... ...

または、intの ままにしてreturn(0);を残し、すべての呼び出しに対してこれを行う ... ...

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

ReturnedValueがint である場合 ... ... どうでしょう、コンパイルエラーはありません。


あなたのコードが意味をなすようにする ... ... そして、あたかも魔法のように、エラーが消える。

 
0を返すint関数は void関数と比較できるはずなので、これは何かあることを意味します。
 
tonny:

つまり、int型関数は実行に多くのリソースを必要とするということでしょうか?多分、metaquotesはinit、deinit、startをvoidにすることで、より少ないリソースを消費するようにできるのでしょう。
もちろん、int 関数は 実行するのに多くのリソースを必要とします。init, start, deinitをvoidとして宣言したコードを書いている人を見たことがありますが、私はそんなことはしません。
 
RaptorUK:

または、intの ままにしてreturn(0);を残し、すべての呼び出しに対してこれを行う ... ...

ReturnedValueがint である場合 ... ... どうでしょう、コンパイルエラーはありません。


そして、まるで魔法にかかったかのように、エラーは消え去りました。


とにかく、問題は解決したのですが、エラーに関しては、出るべきでないところに出ているのだと思います。
 
tonny:
0を返すint関数はvoid関数と同等であるべきなので、これは何かがあることを意味します。
いいえ、そうではありません ... void関数は 値を返しません ....0, 1, 10000の値はすべて同じメモリスペースに保存されます ... ... これらはすべてint 型でintは 4バイトを使います。 voidは何も返しません、0バイトです .... .
 
つまり、voidでもオブジェクトを増やせばストレスポイントになり、再びエラーが発生するのです。これでOKですか?
 
沈黙はイエスということですね。一件落着。
 
tonny:
つまり、voidでもオブジェクトを増やせばストレスポイントになり、再びエラーが発生するのです。これでOKですか?
いいえ、私は同意していません。

でも、あなたの言うとおりかもしれませんね。
 
RaptorUK:
いいえ、私はそうは思いません。

しかし、 それはあなたが正しいかもしれないと思わ れる ... ...

今、私たちは同じページにいます。