2013-07-02 82 views
0

我有相當多的編程經驗的聲明變量,但多年來的不斷書寫功能,我只是想知道社區的意見在這個問題上是。最好的地方,在一個函數

下一個功能是聲明所有的變量是在最開始還是你去宣佈他們最好的地方?

因此,例如:

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萬行的代碼。我認爲一致性非常重要,但我很難決定哪個更好。

+0

[聲明局部變量儘可能晚或者它們所屬的最近的大括號](http://stackoverflow.com/q/10204828/1503018) – sectus

回答

0

大多數良好的編碼習慣的一般規則指導,我已經看到(我只讀過幾),是宣佈他們儘可能靠近第一次使用的位置,如果他們AREN初始化它們默認構造。這大大降低了在沒有初始化的情況下意外使用它們的機會,減少了錯誤的可能性,而且不增加代碼或提高性能。

這就是說,我喜歡把當地的常量在功能的開始。

0

我理解和你的觀點,並與你的感覺一致認爲,第二風格似乎更正確。

雖然它可能會幫助代碼的作者首先使用第一個函數的樣式,但它可以幫助其他人和作者以後(當他們返回時維護他們的代碼),如果變量只要它們的範圍開始就被聲明,對於JavaScript而言,它在函數的頂部,對於其他語言則在塊的開始處。這似乎很麻煩,但如果變量的數量變得所以麻煩,那麼也許功能或塊本身應該被縮短,就像優秀作家傾向於寫長句,但更重要的作家通常掌握縮短句子的藝術再次回落。

請注意:無論使用什麼樣式,最好編寫代碼,其中每個變量只在必要時才存在。

2

一條經驗法則是真的爲我工作,就是:

宣言初始化

這意味着,即使像int i;聲明贊成int i = 0;要避免。

使用與處理變量的代碼一起聲明的代碼實際上只具有可維護性。

還要注意,在頂部聲明變量是可以從是c不允許mixed code and declarations時間幹這種做法。

相關問題