PROFIからSUPER PROFIへの質問-1. - ページ 3 12345678910...45 新しいコメント VonDo Mix 2011.01.21 06:09 #21 聖なる単純性 (c) Jan Hus Владимир Тезис 2011.01.21 06:11 #22 Sorento: 聖なる単純性 (c) Jan Hus どういうことですか? VonDo Mix 2011.01.21 06:28 #23 drknn: どういうことですか?そんな単純な話じゃないんです。 今度は関数内部で、渡された変数を操作します。 数学が教えてくれるように--擬似変数をアドレスで渡してしまったら--そこにある不思議はすべて消えてしまう。 しかし、もしアドレスプールに定数が並んでいたら......すべてが変わってしまう。 0が1になり、その逆もしかり。 ;) Владимир Тезис 2011.01.21 06:31 #24 なぜ、EA/インジケータ/スクリプトで、アドレスで変数を渡すような、そんな複雑なことが必要なのでしょうか?擬似変数、アドレスプール、定数アライメントという言葉はどういう意味ですか? VonDo Mix 2011.01.21 06:42 #25 drknn: なぜ、EA/インジケータ/スクリプトで、アドレスで変数を渡すような複雑な操作が必要なのでしょうか?擬似変数、アドレスプール、定数アライメントという言葉はどういう意味ですか? コンパイラとインタプリタは似ている。 だから、考えてみてください。 関数に渡されるパラメータ(変数)はどのようにしているのか、また、関数に式が渡された場合... ;) Vladyslav Goshkov 2011.01.21 08:18 #26 Sorento:私も疑問は共有しています。スーパープロを気取らない、プロの域に達しない--誰もメッセージを読まない...馬の目にも明らかです。しかし、コードを書けば書くほど(今のところあまりないのですが)-疑問が湧いてきます。関数内でパラメータはどのように渡されるのですか?(名目的にも価値的にも)文字列変数を渡すとジリ貧になるのでは...という疑惑があります。;)自分ではプロともスーパープロとも思っていないけれども、答えてみる :) 。 MTはC2C++で実装されており、開発者は不明な点があれば、この言語の標準を参照することを推奨しています。 C2C++の規格では、配列を除くすべてのパラメータは、式も含めて値で渡されます。つまり、パラメータのコピーが渡される。呼び出された関数 内で値によって渡されたパラメータを変更しても、外部呼び出し関数内のパラメータは変更されない。変更が必要な場合は、参照渡し(アドレス渡し)、つまりパラメータとして渡された変数が位置するアドレスを渡す必要があります。その後、このアドレスに位置する値を変更することができ、アドレスは変更できません。配列はすべて参照渡しで、つまりアドレスはすぐに渡される。そうしないと、膨大な量のデータをスタックにコピーしなければならないからだ。 参照渡しされたパラメータが呼び出される関数内で変更されないようにするために、C/C++ではconst 修飾子が使用されています。 C2C++では、文字列は文字配列ですが、1つだけ違うのは、その配列は文字列終端記号' \0' で終わらなければならないことです。 MCLでは、例題を信じるなら、文字列は文字列のサイズとポインタを含む構造体(つまり、文字列配列そのもの)です。 この例は、C2C++用です。 //---- struct MqlStr { int len; char *string; }; ここで、char *は文字型(char型)の変数へのポインタである。ポインタの型(char*, int*, double*......)は常に整数で、これはセルのアドレスです。つまり、この変数には文字列ではなく、セルのアドレスが格納される。文字そのものの値は,次のように取り出すことができる。*文字列または文字列[0]。動作させるためには,配列が静的に配置されている場合,つまり記述でサイズが指定されていない場合を除き,常に配列用のメモリを確保する必要があります(例. char string[1025] ; は1025個の要素を持つ文字の配列である...。最後の文字(string[1024]='second')を指定すると、配列を1024文字の文字列として扱えるようになります。 文字列の要素は,通常の配列string[i]の要素として受け取ることができる。 動的に配置する場合は,文字列に+1個の要素を割り当て,文字列の末尾の文字を.............とする。 従って、文字列は常に参照渡しである。文字列を関数に渡し、そこで値を変更し、呼び出された関数が終了した後にその値(この値)を読み取るという例で確認することができます。 頑張ってください。 Vadim Zhunko 2011.01.21 12:05 #27 VladislavVG: 従って、文字列は常に参照渡しである。文字列を関数に渡し、そこで値を変更し、呼び出された関数が終了した後にその値(この値)を読み取るという例で確認することができます。 改造を禁止するものではありません。確認しました。 Vadim Zhunko 2011.01.21 12:08 #28 drknn: ああ、ばかばかしい。開発者への質問なのか、DLLですべてがうまくいっているわけではないのでしょう。私はC++プログラマーではありません。一度、いくつかのプログラムを作ってみましたが、C++シェルをインストールしている間は、すべてがうまくいくということに遭遇しました。しかし、あなたが別のコンピュータに実行可能ファイルを転送するとすぐに、いくつかのDLL-サイクルの欠如を発見したとき。また、私は文字列を扱うのが好きではありません。その言語をあきらめ、Delphiに落ち着きました。そのようなDLLは、ターミナルではごく普通のことです。 追伸 だから、プログラミングのためのシェルを選ぶというレベルでも、この言語では問題が起きるのに、なぜみんなC++をそんなに褒めるのか理解できない...。 問題は、これらのライブラリとスクリプトはすべて、チャート上で手動でロードすれば問題なく動作することです。また、現在のプロセスからプログラム的にチャートにロードしても機能します。 リモートプロセスから読み込むと問題が発生します。 ===================================== コードを別のコンピューターに転送することについて。デバッガーのバージョンを移行した可能性が高いです。Studioからデバッグ用のライブラリを引っ張ってくる。リリースをコンパイルしているはずです。そうすれば、どこでもすべてがうまくいくはずだった。 TheXpert 2011.01.21 13:49 #29 例えて言うなら、私が間違っていたのです。 Владимир Тезис 2011.01.21 13:51 #30 TheXpert: 例えて言うなら、私が間違っていたのです。 そうですね。このスレッドのタイトルの用語に瞬きしたほどです。名前が違うことに気づかなかったのです。私の注意はすでに特定のパターンに同調していたのです。 12345678910...45 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
聖なる単純性 (c) Jan Hus
どういうことですか?
どういうことですか?
そんな単純な話じゃないんです。
今度は関数内部で、渡された変数を操作します。
数学が教えてくれるように--擬似変数をアドレスで渡してしまったら--そこにある不思議はすべて消えてしまう。
しかし、もしアドレスプールに定数が並んでいたら......すべてが変わってしまう。
0が1になり、その逆もしかり。
;)
なぜ、EA/インジケータ/スクリプトで、アドレスで変数を渡すような複雑な操作が必要なのでしょうか?擬似変数、アドレスプール、定数アライメントという言葉はどういう意味ですか?
コンパイラとインタプリタは似ている。
だから、考えてみてください。
関数に渡されるパラメータ(変数)はどのようにしているのか、また、関数に式が渡された場合...
;)
私も疑問は共有しています。
スーパープロを気取らない、プロの域に達しない--誰もメッセージを読まない...馬の目にも明らかです。
しかし、コードを書けば書くほど(今のところあまりないのですが)-疑問が湧いてきます。
関数内でパラメータはどのように渡されるのですか?
(名目的にも価値的にも)
文字列変数を渡すとジリ貧になるのでは...という疑惑があります。
;)
自分ではプロともスーパープロとも思っていないけれども、答えてみる :) 。
MTはC2C++で実装されており、開発者は不明な点があれば、この言語の標準を参照することを推奨しています。
C2C++の規格では、配列を除くすべてのパラメータは、式も含めて値で渡されます。つまり、パラメータのコピーが渡される。呼び出された関数 内で値によって渡されたパラメータを変更しても、外部呼び出し関数内のパラメータは変更されない。変更が必要な場合は、参照渡し(アドレス渡し)、つまりパラメータとして渡された変数が位置するアドレスを渡す必要があります。その後、このアドレスに位置する値を変更することができ、アドレスは変更できません。配列はすべて参照渡しで、つまりアドレスはすぐに渡される。そうしないと、膨大な量のデータをスタックにコピーしなければならないからだ。
参照渡しされたパラメータが呼び出される関数内で変更されないようにするために、C/C++ではconst 修飾子が使用されています。
C2C++では、文字列は文字配列ですが、1つだけ違うのは、その配列は文字列終端記号' \0' で終わらなければならないことです。
MCLでは、例題を信じるなら、文字列は文字列のサイズとポインタを含む構造体(つまり、文字列配列そのもの)です。
この例は、C2C++用です。
ここで、char *は文字型(char型)の変数へのポインタである。ポインタの型(char*, int*, double*......)は常に整数で、これはセルのアドレスです。つまり、この変数には文字列ではなく、セルのアドレスが格納される。文字そのものの値は,次のように取り出すことができる。*文字列または文字列[0]。動作させるためには,配列が静的に配置されている場合,つまり記述でサイズが指定されていない場合を除き,常に配列用のメモリを確保する必要があります(例.
char string[1025] ;
は1025個の要素を持つ文字の配列である...。最後の文字(string[1024]='second')を指定すると、配列を1024文字の文字列として扱えるようになります。
文字列の要素は,通常の配列string[i]の要素として受け取ることができる。 動的に配置する場合は,文字列に+1個の要素を割り当て,文字列の末尾の文字を.............とする。
従って、文字列は常に参照渡しである。文字列を関数に渡し、そこで値を変更し、呼び出された関数が終了した後にその値(この値)を読み取るという例で確認することができます。
頑張ってください。
従って、文字列は常に参照渡しである。文字列を関数に渡し、そこで値を変更し、呼び出された関数が終了した後にその値(この値)を読み取るという例で確認することができます。
ああ、ばかばかしい。開発者への質問なのか、DLLですべてがうまくいっているわけではないのでしょう。私はC++プログラマーではありません。一度、いくつかのプログラムを作ってみましたが、C++シェルをインストールしている間は、すべてがうまくいくということに遭遇しました。しかし、あなたが別のコンピュータに実行可能ファイルを転送するとすぐに、いくつかのDLL-サイクルの欠如を発見したとき。また、私は文字列を扱うのが好きではありません。その言語をあきらめ、Delphiに落ち着きました。そのようなDLLは、ターミナルではごく普通のことです。
追伸
だから、プログラミングのためのシェルを選ぶというレベルでも、この言語では問題が起きるのに、なぜみんなC++をそんなに褒めるのか理解できない...。
問題は、これらのライブラリとスクリプトはすべて、チャート上で手動でロードすれば問題なく動作することです。また、現在のプロセスからプログラム的にチャートにロードしても機能します。
リモートプロセスから読み込むと問題が発生します。
=====================================
コードを別のコンピューターに転送することについて。デバッガーのバージョンを移行した可能性が高いです。Studioからデバッグ用のライブラリを引っ張ってくる。リリースをコンパイルしているはずです。そうすれば、どこでもすべてがうまくいくはずだった。
例えて言うなら、私が間違っていたのです。
そうですね。このスレッドのタイトルの用語に瞬きしたほどです。名前が違うことに気づかなかったのです。私の注意はすでに特定のパターンに同調していたのです。