0

これは単純なC計算です。FilterIndexがFilterDepthと等しい場合、上記の最初のものはロールオーバーしません。つまり、FilterDepthは15で、filterIndexは15になります。これを実行すると、CPUは0になりますが、16になり、後で1になり、0にはなりません。

ロジックを2つに分割すると、機能します。ここで何が欠けていますか?

filterIndex = ((filterIndex++) % FilterDepth) ;

対。

filterIndex++;
filterIndex=filterIndex % FilterDepth;
4

1 に答える 1

2

これは C では未定義の動作であるため、その動作は何でもかまいません。シーケンス ポイント間で値を複数回変更
しようとしています。

于 2012-07-12T05:55:50.230 に答える