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

时间:2013-07-02 03:28:03

标签: 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() {
    int i;
    int counter;

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

 }

截至目前,我倾向于通常做类似于fake_function2()的事情,因为这似乎更正确,但有些时候我会做类似于fake_function1()的事情,因为它看起来更易读和可读代码总是更好的代码,尤其是当在我看来,代码可以轻松运行超过10万行。我认为一致性非常重要,但我很难决定哪个更好。

3 个答案:

答案 0 :(得分:2)

对我来说真正有效的经验法则是:

  

声明是初始化

这意味着要避免使用int i;这样的语句,而不是int i = 0;

将声明的代码与处理变量的代码一起实际上只是值得维护。

另请注意,在顶部声明变量的做法可能源于C不允许mixed code and declarations的时间。

答案 1 :(得分:1)

我见过的大多数优秀编码实践指南的一般规则(我只读了一些),是声明它们尽可能接近第一次使用的位置,如果它们不是那么就初始化它们。 t默认构造。这大大降低了它们在没有首次初始化的情况下被意外使用的可能性,减少了错误的可能性,而不会增加代码或任何性能损失。

那就是说,我喜欢将本地常量放在函数的开头。

答案 2 :(得分:0)

我理解并同意你的观点以及你认为第二种风格似乎更正确的感觉。

尽管可能有助于代码的作者最初将他们的想法保持在一起使用第一个函数的样式,但它有助于其他人和作者以后(当他们返回以维护他们的代码时),如果变量是一旦它们的范围开始就被声明,这对于JavaScript来说是函数的顶部,而对于其他语言则是在块的开头。这看起来很麻烦,但如果变量的数量那么很麻烦,那么也许应该缩短函数或块本身,就像优秀的作家倾向于写长句一样,但更好的作家通常会掌握缩短句子的艺术又回来了。

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