首页 > 解决方案 > 在循环之前或循环内定义变量

问题描述

以下两种在 C 中定义 for 循环变量的方法有区别吗?

int i;
for (i = 0; i < X; i++) {
    // something
}

和:

for (int i = 0; i < X; i++) {
    // something
}

我的偏好是使用第二种方法,如果i总是扔掉的话,但是有什么理由认为这样做不是一个好主意吗?

标签: c

解决方案


是的。

由于该i变量通常仅用于计算所需的迭代次数,因此将变量置于循环范围之外是没有意义的。如果可以的话,应该避免这种情况。

正如对该问题的一些评论所提到的,在某些情况下您不能使用第二个,但这不是一般情况。

至于后来编译到同一个程序集的编译器,这可能是真的,但从概念上讲,第二个更干净,对于从外部读取代码的人来说,它清楚地表明该变量永远不会再次使用。

希望这可以帮助!


推荐阅读