Ada*_*ski 3 c++ variables scope
我编程有一段时间了,我已经开始尝试改进我的代码。由于我真的很讨厌创建大量在长函数中只使用一次的变量,因此使用方括号缩短变量范围是一种好习惯吗?即改为写作:
void fcn()
{
int var1;
// some part of fcn
// use of var1;
// rest of fcn
}
Run Code Online (Sandbox Code Playgroud)
写:
void fcn()
{
// some part of fcn
{
int var1;
// use of var100;
}
// rest of fcn
}
Run Code Online (Sandbox Code Playgroud)
是的,保持变量的范围尽可能紧凑确实是一个好主意。
在您的情况下,除非您绝对确定您的代码 usingvar1
只会用于fcn
(如果我的经验有任何意义,我倾向于错误判断),您可以将该代码拆分为单独的函数。你的程序会以这种方式更好地扩展,测试也会更简单。否则,像目前一样使用范围块。
在某些情况下,这种方法是一种很好的做法。
它在“if/range for/while/case”语句周围广泛传播,以至于在 C++17 和 C++20 中添加了这些语句中的显式初始化程序。