Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/function/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function 在函数中声明变量的最佳位置_Function_Variables - Fatal编程技术网

Function 在函数中声明变量的最佳位置

Function 在函数中声明变量的最佳位置,function,variables,Function,Variables,我有相当多的编程经验,但多年来一直在编写函数,我只想知道社区对这个问题的看法是什么 在函数下,声明所有变量的最佳位置是在最开始的位置还是在执行时声明它们 例如: void fake_function1() { int i; //do something here with variable i int counter; //do something here with variable counter } or void fake_function2(

我有相当多的编程经验,但多年来一直在编写函数,我只想知道社区对这个问题的看法是什么

在函数下,声明所有变量的最佳位置是在最开始的位置还是在执行时声明它们

例如:

void fake_function1() {
    int i;
    //do something here with variable i

    int counter;
    //do something here with variable counter

 }

 or

void fake_function2() {
    int i;
    int counter;

    //do something here with variable i
    //do something here with variable counter

 }

到目前为止,我通常会在fake_function2()中这样做,因为这似乎更正确,但在其他一些时候,我会在fake_function1()中这样做,因为它看起来更可读,而且可读代码总是更好的代码,特别是在我认为代码可以轻松运行超过100k行的情况下。我认为一致性非常重要,但我很难决定哪一个更好

我所看到的大多数好的编码实践指南(我只读了一些)的一般规则是,将它们声明为尽可能靠近第一次使用的位置,如果它们不是默认构造的,则初始化它们。这大大降低了它们在没有初始化的情况下被意外使用的可能性,降低了bug的可能性,而不会增加代码或影响性能


也就是说,我喜欢将局部常数放在函数的开头。

我理解并同意你的观点,也同意你的感觉,即第二种样式似乎更正确

虽然这可能有助于代码作者在一开始使用第一个函数的样式时集中思想,但如果变量的作用域一开始就声明(JavaScript位于函数的顶部),这对其他人和作者(当他们返回以维护代码时)都有帮助,而对于其他语言,则是在块的开头。这看起来很麻烦,但如果变量的数量变得如此麻烦,那么也许函数或块本身应该缩短,就像好的作家倾向于写长句一样,但即使是更好的作家通常也会再次掌握缩短句子的艺术


请注意:无论使用哪种样式,最好编写代码,使每个变量只在必要时存在。

一条对我真正有效的经验法则是:

声明是初始化

这意味着即使是
inti而采用
int i=0

将声明的代码与处理变量的代码结合在一起实际上只会提高可维护性

还要注意的是,在顶部声明变量是一种可能源于C不允许的时间的做法。

可能重复