n 回何かを行う逆の for ループの私の最初の試みは、次のようなものでした。
for ( unsigned int i = n-1; i >= 0; i-- ) {
...
}
これは、符号なし算術演算が常にゼロ以上であることが保証されているため失敗します。したがって、ループ条件は常に真になります。幸いなことに、なぜループが無限に実行されるのか疑問に思う前に、gcc コンパイラは「無意味な比較」について警告してくれました。 i
次のことを念頭に置いて、この問題を解決するエレガントな方法を探しています。
- これは逆方向の for ループである必要があります。
- ループ インデックスは符号なしにする必要があります。
- n は符号なし定数です。
- 符号なし整数の「あいまいな」環算術に基づくべきではありません。
何か案は?ありがとう :)