我第一次尝试执行 n 次的反向 for 循环是这样的:
for ( unsigned int i = n-1; i >= 0; i-- ) {
...
}
这失败了,因为在无符号算术 i
中保证始终大于或等于零,因此循环条件将始终为真。幸运的是,在我不得不怀疑为什么循环无限执行之前,gcc 编译器警告我“毫无意义的比较”。
我正在寻找一种解决此问题的优雅方法,请记住:
- 它应该是一个向后的for循环。
- 循环索引应该是无符号的。
- n 是无符号常数。
- 它不应该基于无符号整数的“晦涩”环算术。
有任何想法吗?谢谢 :)