使用size_t值和边界条件编写递减循环的"正确"方法是什么.示例错误实现:
for (size_t elemNum = listSize-1; elemNum >= 0; --elemNum) { /* ... */ }
Run Code Online (Sandbox Code Playgroud)
当它达到零时,它将环绕到最大值而不是作为边界条件.反向迭代循环是必要的.这似乎是一个问题,将有一个事实上的标准解决方案,但我找不到它是什么.
Mar*_*tos 19
最简洁的方法是使用后增量:
for (size_t i = listSize; i--;) ...
Run Code Online (Sandbox Code Playgroud)
elemNum = listsize;
while (elemNum--) {
/* work with elemNum varying from `listsize - 1` down to `0` */
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3654 次 |
| 最近记录: |