用于 C/C++ 中的循环变量优化



以下两个代码片段哪个更快?为什么?

for 语句外部声明的循环索引变量:

size_t i = 0;
for (i = 0; i < 10; i++) 
{
}

for语句中声明的循环索引变量:

for (size_t i = 0; i < 10; i++) 
{
}

两者都不是等效的,并且会产生相同的机器代码。

(编译器将从第一个示例中删除两次i的冗余初始化。

声明变量的位置与性能和内存使用关系不大。

for (size_t i = 0; i < 10; i++)通常被认为是最具可读性的。

for (i = 0; i < 10; i++)的优点是您可以在循环完成后使用 i 变量 - 这在迭代次数可变时最有意义。

唯一的区别是,在第一个上,i 是一个全局变量,第二个是仅用于循环的局部变量。

最新更新