gpt4 book ai didi

c# - 之前声明所有局部变量是否有性能提升或其他原因?

转载 作者:太空宇宙 更新时间:2023-11-04 15:38:03 25 4
gpt4 key购买 nike

我在我们的代码库和网上也经常看到这种风格,如果你有一个带有 for 循环和 if 语句的函数,那么所有的变量都只有它们使用,没有其他任何东西在它们之外声明。例如:

void process()
{
int i;
int count = 100;
vector3 point;
vector sum;

for (i = 0; i < count; ++i)
{
import(this, "pos", point);
sum += point;
}
sum /= count;
}

或者这是过早的优化?我对 C++、C# 和 Python 很好奇,它们是我使用的语言,也是我一遍又一遍地看到它们的地方。

最佳答案

很多旧代码都这样做,因为它在 C89/90 中是必需的。好吧,从技术上讲,从来不需要在函数的开头定义变量,只需在 block 的开头。例如:

int f() { 
int x; // allowed

x = 1;
int y; // allowed in C++, but not C89

{
int z=0; // beginning of new block, so allowed even in C89

// code that uses `z` here
}
}

C++ 从来没有这个限制(C 也有很长一段时间没有),但对于一些旧习惯来说很难改掉。对于其他人来说,保持代码库的一致性超过了在变量使用位置附近定义变量的好处。

就优化而言,这些通常都不会产生任何影响。

关于c# - 之前声明所有局部变量是否有性能提升或其他原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28641576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com