相关疑难解决方法(0)

使用无符号索引进行反向'for'循环的最佳方法是什么?

我第一次尝试反向for循环 n次做的事情是这样的:

for ( unsigned int i = n-1; i >= 0; i-- ) {
    ...     
}
Run Code Online (Sandbox Code Playgroud)

这是失败的,因为无符号算术 i保证总是大于或等于零,因此循环条件将始终为真.幸运的是,在我不得不想知道为什么循环无限执行之前,gcc编译器警告我"无意义的比较".


我正在寻找一种解决这个问题的优雅方法,请记住:

  1. 它应该是一个倒退的循环.
  2. 循环索引应该是无符号的.
  3. n是无符号常数.
  4. 它不应该基于无符号整数的"模糊"环算术.

有任何想法吗?谢谢 :)

c for-loop

56
推荐指数
7
解决办法
3万
查看次数

标签 统计

c ×1

for-loop ×1