OrderSend()関数のバグ? - ページ 7 12345678910 新しいコメント PapaYozh 2013.02.08 04:04 #61 tara: プログラムの再起動時に変数が初期化されることを規定していないため、MUSTとする。 もう一度、水槽の中の人へ。//+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { static int cc=20; Print("cc = ",cc); cc++; return(0); } 作品例初期化がうまくいく。 PapaYozh 2013.02.08 04:15 #62 hoz: この点は(教科書から)よくわからないが。 「静的変数は、専用の init() 関数を呼び出す前に一度初期化されます。つまり、静的変数が宣言されている関数から離れるときに、この変数の値が失われることはないのです。 特別なinit() 関数を呼び出す前」と「(内容から判断して)スタティック変数が宣言されているユーザー関数を終了した後」と、どういう関係があるのでしょうか?" 静的変数を宣言する関数は、プログラムの最後...つまりコードの最後かどこか他の場所にあることがあります。init() 関数は、プログラム開始直前に一度だけ実行されます。矛盾していることがわかります。init() 関数の前に変数を初期化するにはどうしたらいいですか? 関数がプログラムのどこにあるかは関係なく、静的 変数は関数の外側にあります。 Victor Nikolaev 2013.02.08 04:17 #63 PapaYozh: 関数がプログラムのどこにあっても、変数staticは 関数の外側にあるのです。 どういうことですか? PapaYozh 2013.02.08 04:18 #64 tara: いいえ、そうではありません。それはバグです :) デフォルトの初期化に頼るのは悪い癖です。 PapaYozh 2013.02.08 04:20 #65 Vinin: どういうことですか? 静的変数は、プログラムメモリの永続的な領域に格納され、その値は関数を 終了しても失わ れません。 Алексей Тарабанов 2013.02.08 07:19 #66 PapaYozh: もう一度、水槽の中の人へ。 例題はうまくいく。初期化がうまくいく。 クリニック... はい、初期化はうまくいきました。まさに一度だけ。そして、再起動すると、そうではありません。そうであってほしい。これではっきりしたかな? TheXpert 2013.02.08 07:57 #67 頼むからEAでスタティックは使わないでくれ。 PapaYozh 2013.02.08 08:03 #68 tara: クリニック... はい、初期化はうまくいきました。まさに一度だけ。そして、再起動すると、そうではありません。そうであってほしい。これではっきりしたかな? Expert Advisor を再起動すると、一度だけ動作します。 再起動、Expert Advisorのプロパティに入り、OKを押して終了とはどういうことでしょうか? PapaYozh 2013.02.08 08:05 #69 TheXpert: 頼むからEAでスタティックは使わないでくれ。 使ってはいけない」ではなく、「正しく使う」「間違って使っては いけない」。 Алексей Тарабанов 2013.02.08 08:06 #70 はい、それと。 1.アカウントが変更されたとき。2.楽器を交換するとき。3.TFを変更する場合。 12345678910 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
プログラムの再起動時に変数が初期化されることを規定していないため、MUSTとする。
もう一度、水槽の中の人へ。
作品例初期化がうまくいく。この点は(教科書から)よくわからないが。
「静的変数は、専用の init() 関数を呼び出す前に一度初期化されます。つまり、静的変数が宣言されている関数から離れるときに、この変数の値が失われることはないのです。
特別なinit() 関数を呼び出す前」と「(内容から判断して)スタティック変数が宣言されているユーザー関数を終了した後」と、どういう関係があるのでしょうか?"
静的変数を宣言する関数は、プログラムの最後...つまりコードの最後かどこか他の場所にあることがあります。init() 関数は、プログラム開始直前に一度だけ実行されます。矛盾していることがわかります。init() 関数の前に変数を初期化するにはどうしたらいいですか?
関数がプログラムのどこにあっても、変数staticは 関数の外側にあるのです。
どういうことですか?
いいえ、そうではありません。それはバグです :)
どういうことですか?
静的変数は、プログラムメモリの永続的な領域に格納され、その値は関数を 終了しても失わ れません。
もう一度、水槽の中の人へ。
例題はうまくいく。初期化がうまくいく。クリニック...
はい、初期化はうまくいきました。まさに一度だけ。そして、再起動すると、そうではありません。そうであってほしい。これではっきりしたかな?
クリニック...
はい、初期化はうまくいきました。まさに一度だけ。そして、再起動すると、そうではありません。そうであってほしい。これではっきりしたかな?
Expert Advisor を再起動すると、一度だけ動作します。
再起動、Expert Advisorのプロパティに入り、OKを押して終了とはどういうことでしょうか?
頼むからEAでスタティックは使わないでくれ。
はい、それと。
1.アカウントが変更されたとき。
2.楽器を交換するとき。
3.TFを変更する場合。