mql5言語の特徴、微妙なニュアンスとテクニック - ページ 121

 
TheXpert:

それじゃあ、わからないよ。

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

mql5の特性、ヒントとコツ

アレクセイ・ナヴォイコフ 2019.01.14 16:35

しかし、一般に、関数の宣言順序は、コードの正しさを制御するための追加的な方法 である。例えば、あるプラグインでOnTick()や、さらに悪いことにOnInit()が発生した場合、それは良いことでしょうか? ライブラリは、あなたの作業コードを見ることができないはずです。
 
fxsaber:

それじゃ、わかんないよ

前方宣言は、クラスと構造体のみで、関数には適用されません。

 
fxsaber:

要は、使おうとしている関数がinludeで指定されている場合、inlude以下であれば、その提案に従って書く必要があるということです。

インローを早めに入れることの何が問題なのでしょうか?

1つのファイルでは不便かもしれませんが(ボディを持つ関数は呼び出しの前になければなりません)、mqhの関数であれば - 先頭にinludeを挿入することに何の問題があるのでしょうか?

 
TheXpert:

前方宣言は、クラスと構造体のみで、関数には適用されません。

それを明確にしてくれたのは素晴らしいことです。

アンドレイ・ハチムリアンスキー

インローを早めに入れることの何が問題なのでしょうか?

単一のファイル(呼び出しの前に必ずボディがある関数)では不便かもしれませんが、関数がmqhにある場合 - 最初にインラインを挿入することに何か問題があるのでしょうか?

マクロを使用した構成では、最終行にinludeが必要な場合がありました。具体的な例は挙げません、実際に何度も遭遇しています。

 
TheXpert:

前方宣言は、クラスと構造体のみで、関数は対象外です。

いや、私も間違っている。関数には宣言と定義がある。
 
fxsaber:

マクロを使用した構成では、最終行にinludeが必要な場合がありました。具体的な例は挙げません、実際に何度も遭遇しています。

まあ、これはかなり異質なものですが。 シングルマクロは、そのためにアーキテクチャの正しさを犠牲にする価値があるとは思えませんね。

いずれにせよ、プログラムコードは、その意図するアルゴリズムに従って正確に実行されなければならない。初期化前の変数へのアクセスは ナンセンスです。 これはコンパイルしてはいけません。

 

ちなみに、inludeがそこにない関数を使う場合は、とりあえずそこで宣言しておく必要があります。クラスやextern変数と同じように。 そうでない場合は、inludeではなく、crutchになります。

それに応じて、プラグインは差し込む場所に依存しないようにする必要があります。

 
Alexey Navoykov:
ちなみに、inludeの中で、そこにない関数が使われている場合は、とりあえずそこで宣言しておく必要があります。クラスやextern-variablesと同じように。 そうでなければ、それはinludeではなく、松葉づえです。

インリュードって何だと思う?私にとっては、別のファイルに割り当てられた、ただのテキストの一部です。そして、そのソースへの再導入は無視される。他にはありません。

 
fxsaber:

インリュードって何だと思う?私にとっては、別のファイルに割り当てられた、ただのテキストの一部です。そして、そのソースへの再導入は無視される。他にはありません。

私は、独立した、独立したコードであるべきだと思います。 その方が理にかなっているし、このコードに対して独立したシンタックスチェックを行い、コントロールしやすい。 しかし、すべてが異なるファイルにあり、どこから呼ばれているのかが明確でない場合は、カオスになります。

 
Alexey Navoykov:

その方が、独立したシンタックスチェックを行いやすくなります。

私のコードの例を掲載しました。コンパイルしないインキュードでも、カオスの感想は聞いたことがないですね。

理由: