ループの後ろで変数を宣言するのか、ループの中で宣言するのか? - ページ 7 1234567891011 新しいコメント Igor Makanu 2019.08.18 12:33 #61 Alexey Volchanskiy: コンパイラはローカル変数にも グローバル変数と同じように0をつけると思っている人たちに会っただけです。 そして、コンパイラはワープをしない。 文字列やプリントは、変数を扱う指標にはなりません。 int a; int b; void OnStart() { b=a+100; int c; int d=c+5; for(int i=0;i<10;i++) { int e; int f=i+e; } } 'tst.mq5' tst.mq5 1 1 possible use of uninitialized variable 'c' tst.mq5 16 10 possible use of uninitialized variable 'e' tst.mq5 20 17 生成されたコード 1 1 0 エラー(s), 2 警告(s), 526 msec 経過 1 3 削除済み 2019.08.18 13:11 #62 //c++ int main() { int count= (int)10 e6; { auto t1 = chrono::high_resolution_clock::now(); int sum=0; for (int i=0; i<count; i++) { string st; st = "12345678qwertyuioasdfgh"; sum += st[i%23]; } auto t2 = chrono::high_resolution_clock::now(); auto duration = chrono::duration_cast<chrono::milliseconds>( t2 - t1 ).count(); cout << "time = " << duration << endl; cout << "sum = " << sum << endl; } { auto t1 = chrono::high_resolution_clock::now(); int sum=0; string st = ""; for (int i=0; i<count; i++) { st = "12345678qwertyuioasdfgh"; sum += st[i%23]; } auto t2 = chrono::high_resolution_clock::now(); auto duration = chrono::duration_cast<chrono::milliseconds>( t2 - t1 ).count(); cout << "time = " << duration << endl; cout << "sum = " << sum << endl; } } 時間=1018 sum = 894782460 時間 = 371 sum = 894782460 なぜかわからないが、μlは強く(そしてより複雑なrand()の亜種を)追い越すのである。 そして、私にとっては、ループから外すということは明白です。 削除済み 2019.08.18 13:24 #63 Alexey Volchanskiy: コンパイラはローカル変数にも グローバル変数と同じように0をつけると思っている人たちに会っただけです。 そして、コンパイラは何のワラントも出さない。 それとも ......どうだろう。隙あらば悪態をついてもらう...。)))))) Dmitriy Skub 2019.08.18 13:26 #64 Сергей Таболин: それとも ......どうだろう。隙あらばそうやって悪態をつく...。)))))) コンパイラのバージョンが猥雑になっている) 削除済み 2019.08.18 13:28 #65 Vict: 時間=1018 sum = 894782460 時間 = 371 sum = 894782460 なぜかわからないが、μlは(より複雑なrand()の亜種を)先取りしているのである。 そして、私にとっては、ループから外すということは明白です。 私はグルではありませんが、ここでは、私の謙虚な意見では、ループ内の変数の宣言は HUGE dealです(そしてそれはもはやHUGE dealではありません) ! ひとつは関数で、ローカルな部分でも、ループは......。 間違っているかもしれません ))))))))))))))))))))))))))))))))))) 削除済み 2019.08.18 13:30 #66 Dmitriy Skub: コンパイラのバージョンが猥雑になっている) と喜んでいます )))))))))))))))))))))))))))))))))))))))))))))ときどきですが ...むしろ何も言わないでほしい ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) Mikhail Dovbakh 2019.08.18 13:59 #67 これがディベートなら......グルに聞いてみたい。 どちらが「正しい」(最適で読みやすい)か。 for (int i=0;i<Bars();i++) { // code } または int i,MaxBars=Bars()-1; for (i=MaxBars;i>=0;i--;) { // code } iの順番が無関心だとしたら? Alexey Viktorov 2019.08.18 13:59 #68 Сергей Таболин: 私はグルではありませんが、ここでは、私の謙虚な意見では、ループ内の変数の宣言は HUGE dealです(そしてそれはもはやHUGE dealではありません) ! ひとつは関数で、ローカルな部分でも、ループは......。 間違っているかもしれません ))))))))))))))))))))))))))))))))))) ありえないが、確実に間違っている。ほんの一例です。オープンポジションをループさせるのです。ポジションチケットを取得し、それを使って他のポジションプロパティを取得する。ポジションプロパティ取得の各関数内でPositionGetTicket(i)を挿入するか、一旦変数に書き込んで使用するかの2通りがあります。しかし、ループを抜けると、このチケットは不要になる...。この変数をOnTick()関数の本体で、あるいはさらに興味深いことにグローバルレベルで宣言する理由は何でしょうか。 Igor Makanu 2019.08.18 14:34 #69 Mikhail Dovbakh: これがディベートなら......グルに聞いてみたい。 どちらが「正しい」(最適で読みやすい)か。 または iの順番が無関心だとしたら? 余分な変数がないので、私は、最初のオプションを考える、彼らだけでなく、メモリを使用しますが、私のために、コードを乱雑に - もっと読むが、それはあなたが関数はほとんど使用されていない場合、イミテーションを呼び出す関数に依存し、時にはそれは、あなたがタスクの意味で名前を持つ変数を宣言した場合、より読みやすくなります......。全体として、これは創造的な問題である )))) が、一般的には、聞く耳を持たず、好きなように書けばいい、自分の都合のいいように言葉を 使えばいいのです SZZ:マイクロソフトの例を見て、スタイルは主に - 変数を使用して一度に宣言し、基本的にローカルスコープを取得しますが、狂信せずに))。 void SimpleImage::CalculateDrawingRect() { // Load our bitmap if necessary if (nullptr == m_bitmap) { if (FAILED(LoadBitmapFromShellItem())) { return; } } // Calculate bitmap rectangle float boundingWidth = m_boundingRect.right - m_boundingRect.left; float b oundingHeight = m_boundingRect.bottom - m_boundingRect.top; float w idth = Direct2DUtility::GetRectWidth(m_clipRect); float h eight = Direct2DUtility::GetRectHeight(m_clipRect); if (!m_isHorizontal) { // Swap width and height to calculate boundaries float widthTemp = width; width = height; height = widthTemp; } if (width > boundingWidth) { // Width is larger than bounding box. Scale width to fit float scale = boundingWidth / width; width *= scale; height *= scale; } https://github.com/microsoft Microsoft github.com This repo is the official home of .NET on GitHub. It's a great starting point to find many .NET OSS projects from Microsoft and the community, including many that are part of the .NET Foundation. Alexander Puzanov 2019.08.18 14:59 #70 Mikhail Dovbakh: これがディベートなら......グルに聞いてみたい。 どちらが「正しい」(最適で読みやすい)か。 または iの順番が無関心だとしたら? もし無関心なら。 int i = Bars(); while(i-- > 0) { // code } . 1234567891011 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
コンパイラはローカル変数にも グローバル変数と同じように0をつけると思っている人たちに会っただけです。
そして、コンパイラはワープをしない。
文字列やプリントは、変数を扱う指標にはなりません。
'tst.mq5' tst.mq5 1 1
possible use of uninitialized variable 'c' tst.mq5 16 10
possible use of uninitialized variable 'e' tst.mq5 20 17
生成されたコード 1 1
0 エラー(s), 2 警告(s), 526 msec 経過 1 3
時間=1018
sum = 894782460
時間 = 371
sum = 894782460
なぜかわからないが、μlは強く(そしてより複雑なrand()の亜種を)追い越すのである。
そして、私にとっては、ループから外すということは明白です。
コンパイラはローカル変数にも グローバル変数と同じように0をつけると思っている人たちに会っただけです。
そして、コンパイラは何のワラントも出さない。
それとも ......どうだろう。隙あらば悪態をついてもらう...。))))))
それとも ......どうだろう。隙あらばそうやって悪態をつく...。))))))
時間=1018
sum = 894782460
時間 = 371
sum = 894782460
なぜかわからないが、μlは(より複雑なrand()の亜種を)先取りしているのである。
そして、私にとっては、ループから外すということは明白です。
私はグルではありませんが、ここでは、私の謙虚な意見では、ループ内の変数の宣言は HUGE dealです(そしてそれはもはやHUGE dealではありません) !
ひとつは関数で、ローカルな部分でも、ループは......。
間違っているかもしれません )))))))))))))))))))))))))))))))))))
コンパイラのバージョンが猥雑になっている)
と喜んでいます )))))))))))))))))))))))))))))))))))))))))))))ときどきですが ...むしろ何も言わないでほしい )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
これがディベートなら......グルに聞いてみたい。
どちらが「正しい」(最適で読みやすい)か。
または
iの順番が無関心だとしたら?
私はグルではありませんが、ここでは、私の謙虚な意見では、ループ内の変数の宣言は HUGE dealです(そしてそれはもはやHUGE dealではありません) !
ひとつは関数で、ローカルな部分でも、ループは......。
間違っているかもしれません )))))))))))))))))))))))))))))))))))
これがディベートなら......グルに聞いてみたい。
どちらが「正しい」(最適で読みやすい)か。
または
iの順番が無関心だとしたら?
余分な変数がないので、私は、最初のオプションを考える、彼らだけでなく、メモリを使用しますが、私のために、コードを乱雑に - もっと読むが、それはあなたが関数はほとんど使用されていない場合、イミテーションを呼び出す関数に依存し、時にはそれは、あなたがタスクの意味で名前を持つ変数を宣言した場合、より読みやすくなります......。全体として、これは創造的な問題である ))))
が、一般的には、聞く耳を持たず、好きなように書けばいい、自分の都合のいいように言葉を 使えばいいのです
SZZ:マイクロソフトの例を見て、スタイルは主に - 変数を使用して一度に宣言し、基本的にローカルスコープを取得しますが、狂信せずに))。
https://github.com/microsoftこれがディベートなら......グルに聞いてみたい。
どちらが「正しい」(最適で読みやすい)か。
または
iの順番が無関心だとしたら?
もし無関心なら。
int i = Bars();
while(i-- > 0)
{
// code
}
.