エラー、バグ、質問 - ページ 2479

 
このスプリントをコンパイルする際
void Func() { return(true); }

void OnStart()
{
  if (Func())
    ;
}


このログ

'if' - expression of 'void' type is illegal     Test8.mq5       5       3
empty controlled statement found        Test8.mq5       6       5
'return' - 'void' function returns a value      Test8.mq5       1       15
2 error(s), 1 warning(s)                3       2


2つのエラーを強調した。ソースではトップダウンしないのが普通なのでしょうか?

 
fxsaber:
このスプリントをコンパイルするとき。


このログ


2つのエラーを強調した。ソースコードでトップダウンしないのが普通なのでしょうか?

void関数は値を返すことができますか?

void Func() { return(true); }
 
Alexey Viktorov:

void関数は値を返すことができますか?

例題のために特別に作られたエラーです。別のことを聞いていたんです。

 
fxsaber:

2つのエラーを強調した。ソースコードの上から下まで行かないのが普通なのでしょうか?

MQLコードの先頭でも末尾でも、どんな関数でも記述することができます。 コンパイルは、コンパイラメーカーのロジックに従って行われ、そこに何をどのように記述するかは開発者だけが知っています。

ウェブ上には、コンパイラに関する記事、リンクテーブルの構築方法、リンクの...

これはインタープリタではなく、コンパイラですよね?- インタープリタでは、トップダウンでコマンドを実行したり、機械がソースを読んだりするような感じです


追記:コンパイラがバイトコードにすべてを含めていないことを確認するには、テストコードを書いてコンパイルし、.ex5のサイズを確認した後、任意の場所(上部または下部)に多くの異なる関数を追加してそれらを呼び出さないようにします。

 
Igor Makanu:

MQLコードの先頭でも末尾でも、どんな関数でも記述することができます。 コンパイルは、コンパイラのロジックに従って構築されますが、そこに何をどのような順序で構築するかは開発者しかわかりません。

ウェブ上には、コンパイラに関する記事、リンクテーブルの構築方法、リンクの...

これはインタープリタではなく、コンパイラですよね?- インタープリタでは、トップダウンでコマンドを実行したり、機械がソースを読んだりするような感じです


追記:コンパイラがバイトコードにすべてを含んでいないことを確認するには、テストコードを書いてコンパイルし、.ex5のサイズを確認した後、任意の場所(上部または下部)に多くの異なる関数を追加してそれらを呼び出さないようにします。

各エラーには、行番号と列番号に関する項目があります。コンパイラの内部ですべてがどのような形になっているかは関係ないのです。常に指定された行番号でエラーをソートしていたようです。

 
fxsaber:

常に行番号でエラーをソートしていたようです。

私は注意したことはありません、私はいつもエラーがあった場所をクリックして、それは重要であるように思えませんでした。

 
MQが新しいベータ版を出しているのに、なぜMQ-Demoとの接続が切れているのですか?
 
fxsaber:
MQが新しいベータ版を出しているのに、なぜMQ-Demoとの接続が切れてしまうのでしょうか?
しかし、サーバーへの接続が失われるテストは可能です。また、トレーディング、つまりそのサーバー側の解像度が頻繁にオフ/オンされるのも非常に良い。また、テストにも適しています。また、いくつかのアカウント・パラメータを前後に変更できるようにしてほしいです。例えば、レバレッジ、マージンコール、ストップアウトのレベルなどです。
 
Artyom Trishkin:
しかし、サーバーへの接続が失われることをテストすることができます。また、トレーディング、つまりそのサーバー側の解像度が、しばしばオフ/オンされるのも非常に良い。また、テストにも適しています。また、いくつかのアカウント・パラメータを前後に変更できるようにしてほしいです。例えば、レバレッジ、マージンコール、ストップアウトのレベルなどです。

テストする必要のない人たちから、どれだけの鼻水が出るか想像できるでしょうか。理解されないだろう。

 
Artyom Trishkin:
しかし、サーバーとの通信が途絶えたかどうかをテストすることはできます。トレーディング、つまりそのサーバー側の解像度がOFF/ONになることが多いのも非常に良いですね。また、テストにも適しています。また、いくつかのアカウント・パラメータを前後に変更できるようにしてほしいです。例えば、レバレッジ、マージンコール、ストップアウトのレベルなどです。

これはすべてカスタムテスターを介して行うことができます。