お知らせ:
  • 口座開設をご希望の場合は、カスタマーサービスまでご連絡いただき、操作方法をご案内いたします。
  • カスタマーサービスのWeChat:Jin-DaoCheng
    1. ホーム > ニュース情報

    EAプログラミングチュートリアル:変数スコープの詳細

    1ローカル変数:

    関数内で定義された変数はローカル変数と呼ばれ、そのスコープは関数内に限定されます。これらの変数にアクセスできるのは関数内のコードのみで、関数外のコードは関数内で定義された変数にアクセスできません。例えば:

    int funcname(int a)

    {

    int abc;//関数内の変数は、関数内のコードからのみアクセスでき、外部コードは変数abcを使用できません。

    }

    2関数パラメータ:

    関数引数の変数名は、関数内の変数名と同じにすることはできません。引数には、次のようなデフォルト値を指定することもできます。

    void func(int x, double y = 0.0, bool z = true)

    {

    ...

    }

    この関数は、yのデフォルト値を0.0、zのデフォルト値をtrueに指定します。シュンドゥオEAでは、このパラメータ設定を理解することで、ポリシーをより適切に最適化できます。

    関数を呼び出すとき、デフォルト値を持つ引数を指定しなくてもよい。例えばfunc(9)はfunc(9,0.0, true)を呼び出すことに相当する。func(9,1.5)を呼び出す場合はfunc(9,1.5,true)を呼び出すことに相当する。

    一般的に、関数の引数は値を渡して呼び出します。関数内で引数の値を変更しても、関数を呼び出すプログラムブロックには影響しません。配列でも値を渡して渡します。

    では、どのようにしてパスレファレンスを実装するのでしょうか?パスレファレンスを使用すると、関数内のパラメーター値が変更されると、関数を呼び出すコードセグメントの変数値も変更されます。パスレファレンスを実装するには、関数のパラメーター型の後に'&'記号を追加する必要があります。例:

    void func(int& x, double& y, double& z[])

    {

    x = 8;

    }

    参照を渡す関数パラメータの場合、デフォルト値を設定することはできないことに注意してください。

    関数引数の数は64個を超えてはいけません。

    3グローバル変数:

    グローバル変数は、関数と同じレベルの変数であり、そのスコープはMQLコード全体をカバーします。つまり、MQLコード全体のすべての場所からグローバル変数にアクセスできます。例:

    int a = 10;

    int funca()

    {

    Print(a);//グローバル変数aにアクセスできます

    return (0);

    }

    int funcb()

    {

    Print(a);//グローバル変数aにアクセスできます

    return (1);

    }

    4外部変数:

    変数が外部変数として定義されている場合、EAクライアントはこの外部変数の値を直接設定できます。この機能は、Dendbo EAのデバッグおよび最適化プロセスで非常に便利です。

    例えば:

    extern int a = 10;

    extern color c = red;

    クリックして取引口座開設に関する問題を相談する

    転載は出典を明記してください:https://www.daoctech.com/fxnews/2311.html

    免責事項:この記事の内容は外国為替アカデミーの見解を表すものではありません。内容は参考用であり、投資アドバイスを構成するものではありません。投資家がこれに基づいて操作する場合、リスクは自己負担となります。