我第一次try 做n次事情的reverse for loop次是这样的:
for ( unsigned int i = n-1; i >= 0; i-- ) {
...
}
这是fails,因为在unsigned arithmetic中,i
保证总是大于或等于零,因此循环条件将始终为真.幸运的是,gcc编译器在我想知道为什么循环会无限执行之前警告了我一个"无意义的比较".
我正在寻找一种优雅的方式来解决这个问题,要记住:
- 这应该是一个反向循环.
- 循环索引应该是无符号的.
- n是无符号常数.
- 它不应该基于无符号整数的"模糊"环算术.
有什么 idea 吗?谢谢:)