stehanの日記: バグか?バグなのか? 4
日記 by
stehan
VC++ 2008で
void count_down( int i )
{
while( 0 < i-- ){
printf( "%d, ", i);
::Sleep( 1000 );
}
puts("今週のビックリドッキリメカ 発進!!");
}
int _tmain(int argc, _TCHAR* argv[])
{
count_down( 2 );
::Sleep( 5000 );
count_down( 1 );
::Sleep( 5000 );
count_down( 0 );
return 0;
}
アウトプット
1, 0, 今週のビックリドッキリメカ 発進!!
0, 今週のビックリドッキリメカ 発進!!
-1, 今週のビックリドッキリメカ 発進!!
勘弁してくださいよ・・・
追記:
Release ビルドでのみ発症。
絞り込むのに時間がかかったが、まさかこんなところが原因だったとは。
i-- をループ内部に移動しても収まらず。
下記に書き換えて回避。ああ、この瞬間がMSだねっ!!歳がバレても構うものか。
if( 0 < i )
while( 0 < i-- ){
バグ? (スコア:0)
こういうことなんじゃないかな [okwave.jp]。
Re:バグ? (スコア:1)
全然違いますよ。良い機会ですし i-- と --i の違いについて、自分でサンプルを書いて確かめてみることをお勧めします。
Re:バグ? (スコア:1)
サンプル書いても VC じゃ間違って覚えてしまうかも。まあ Debug ビルドなら正しく動くから問題ないか。
ちょっと (スコア:0)
てっきりそこが問題なんだと思ってたんだけど