【发布时间】:2020-03-03 06:11:54
【问题描述】:
在浏览Linux源代码时,我遇到了以下line:
int tmp;
for (tmp = PIDTYPE_MAX; --tmp >= 0; )
为什么不这样做:
for (tmp = PIDTYPE_MAX; tmp >= 0; tmp--)
这是another 之类的 for 循环优化吗?
【问题讨论】:
-
您的循环不等效。通过在循环体之前递减迭代器变量可确保条件
0 <= tmp < PIDTYPE_MAX始终为真。这实际上是 C 中的规范反向循环,其中下限包含在内,上限不包含在内。 (但我更喜欢tmp-- > 0,它也适用于无符号类型。) -
是的,这是有道理的。如果您将评论更改为答案,我很乐意将其标记为答案。谢谢!
标签: c performance for-loop