MQL 4プログラミング-値転送と参照転送
1188 ワード
定義#テイギ#
簡単に言えば、変数またはオブジェクトに別名を付けます(参照と参照される共有ストレージユニットは、修飾子&を使用します).
引用の使い方
MQL 4ではデバッグにより参照のみが関数パラメータとして使用され,関数パラメータの伝達には2つの伝達方式がある.
値で渡す
実パラメータとパラメータはメモリ領域を割り当て、伝達中に実パラメータが関数パラメータにデータをコピーして演算します.
主関数:
値伝達の過程で,関数が取得したパラメータ値は実パラメータコピーの1つのコピーにすぎず,実パラメータ自体は演算に参加せず,bは依然として5であり,変化はなく,関数が実パラメータを取得して自己加算した結果は6であった.
関数パラメータとして参照を渡す
この場合、パラメータは実パラメータの別名と見なされ、パラメータは実パラメータであり、両者の共通メモリ空間は、メモリの使用を大幅に低減し、変数名を使用し、全体的により効率的で直感的である.
主関数:
伝達参照の過程で,変形パラメータを変更することは実パラメータを変更することであり,関数パラメータは実パラメータを取得して自己加算した結果は6となり,実パラメータ5も6となり,双方向伝達の機能に達した.
まとめ
リファレンスはメモリの使用量を大幅に低減し、速度を速めることができます.また、MQL 4のクラス設計では、関数パラメータのすべてのオブジェクトがリファレンスによって伝達されなければなりません.データ型のターゲットポインタもリファレンスの問題に関連するので、事前に敷く必要があります.
簡単に言えば、変数またはオブジェクトに別名を付けます(参照と参照される共有ストレージユニットは、修飾子&を使用します).
引用の使い方
MQL 4ではデバッグにより参照のみが関数パラメータとして使用され,関数パラメータの伝達には2つの伝達方式がある.
値で渡す
実パラメータとパラメータはメモリ領域を割り当て、伝達中に実パラメータが関数パラメータにデータをコピーして演算します.
int a(int c) // a,int c
{
int e;
e=c++;
return(e);
}
主関数:
void OnStart()
{
int b=5; //
Print(" :",a(b));
Print(" :",b);
}
値伝達の過程で,関数が取得したパラメータ値は実パラメータコピーの1つのコピーにすぎず,実パラメータ自体は演算に参加せず,bは依然として5であり,変化はなく,関数が実パラメータを取得して自己加算した結果は6であった.
関数パラメータとして参照を渡す
この場合、パラメータは実パラメータの別名と見なされ、パラメータは実パラメータであり、両者の共通メモリ空間は、メモリの使用を大幅に低減し、変数名を使用し、全体的により効率的で直感的である.
int a(int &c) // a,int &c
{
int e;
e=c++;
return(e);
}
主関数:
void OnStart()
{
int b=5; //
Print(" :",a(b));
Print(" :",b);
}
伝達参照の過程で,変形パラメータを変更することは実パラメータを変更することであり,関数パラメータは実パラメータを取得して自己加算した結果は6となり,実パラメータ5も6となり,双方向伝達の機能に達した.
まとめ
リファレンスはメモリの使用量を大幅に低減し、速度を速めることができます.また、MQL 4のクラス設計では、関数パラメータのすべてのオブジェクトがリファレンスによって伝達されなければなりません.データ型のターゲットポインタもリファレンスの問題に関連するので、事前に敷く必要があります.