在C++中最小化变量的范围

Minimalizing variable's scope in C++

本文关键字:范围 变量 最小化 C++      更新时间:2023-10-16

我已经编程了一段时间,我已经开始尝试改进我的代码。由于我真的很讨厌创建在长函数中只使用一次的大量变量,那么通过使用括号来缩短变量范围是否是一种好习惯? 即 而是写:

void fcn()
{
int var1;
// some part of fcn
// use of var1;
// rest of fcn
}

写:

void fcn()
{
// some part of fcn
{
int var1;
// use of var100;
}
// rest of fcn
}

是的,保持变量的范围尽可能小确实是一个好主意。

在你的情况下,除非你绝对确定你的代码使用var1只会在fcn中使用(如果我的经验是可以参考的,我倾向于误判(,否则你可以将该代码拆分为一个单独的函数。这样,您的程序将更好地扩展,并且测试也将更简单。否则,请像当前一样使用范围块。

当然,在某些情况下,这种方法是一种很好的做法。

它围绕"if/range for/while/case"语句如此广泛,以至于在这些语句中添加了显式初始值设定项 C++17 和 C++20。

你不应该在任何地方int var1;

首先var1是一个可怕的名字。

其次,如果任何代码路径可以在分配之前读取var1,则您现在有可能出现未定义的行为。

喜欢

int meaningfulName = initialValue;

甚至更好

const int meaningfulName = value;

完成此操作后,您选择的范围将受到更多限制。如果还有选择,请选择尽可能窄的范围。