→ james732:我覺得第二種方式比較"安全",特別是用在 += 這種情況時 06/02 15:09
→ meconin:以 Coding Style 來說,可能用 #define 放 .h 比較好 06/02 15:35
推 chchwy:可讀性反而次要,c++裡沒給初值的變數很危險 06/02 15:35
→ meconin:我相信大多數的編譯器,是會編出一樣的組語只差 addr 順序 06/02 15:35
※ 編輯: wzbird 來自: 61.222.81.253 (06/02 15:48)
→ diabloevagto:第二種比較好,怕你還沒給予初值就使用到,會錯 06/02 16:07
→ diabloevagto:我覺得還沒用到就不要宣告,宣告了就表示要用,那表 06/02 16:08
→ diabloevagto:示你就有初值要給他。 06/02 16:08
→ diabloevagto:另外我for那個i會在for裡面宣告,不要讓他scope太大 06/02 16:09
→ x000032001:for迴圈這個根本只是因為純C不能在裡面宣告吧wwww 06/02 16:44
我剛剛試了, 在for裡面宣告, 果然被gcc罵了 Q_Q
error: 'for' loop initial declaration used outside C99 mode
所以C90不允許在for 才中宣告變數
但是第二種style 又習慣在宣告就給初值, 所以才把for的值也提到function 最前面
讓for的第一個欄位留空白
※ 編輯: wzbird 來自: 61.222.81.253 (06/02 16:58)
→ diabloevagto:C99我記得要求所有變數都要在一開使宣告,不能途中 06/02 17:17
→ diabloevagto:在多宣告變數 06/02 17:18
→ diabloevagto:看到下一篇發現原來是c90... 06/02 17:18
※ 編輯: wzbird 來自: 61.222.81.253 (06/02 17:23)
→ wzbird:所以應該是C90的限制才發生這個error 06/02 17:23
→ wzbird:那這樣說我的gcc是c90的規格囉? (我自己都不知道XD) 06/02 17:24
→ diabloevagto:C99或c99都有支援,我不太清楚預設是那個,不過你可 06/02 18:42
→ diabloevagto:可以自己下參數選擇 06/02 18:42
→ james732:gcc遇到副檔名是.c的檔案,預設應該會用c90的標準編譯 06/02 19:08
→ james732:如果是 for (int i...) 印象中副檔名為 .cpp 就可以 06/02 19:09
→ meconin:c++ 不需要在 scope 的頭宣告, C 的話,用 {} 搞個 scope 06/02 19:48
推 Favonia:還有第三種,就是要用時才宣告並給初值... 06/02 20:26
→ diabloevagto:上面說的第二種,不就是樓上講的那種嗎... 06/02 20:47
→ descent:gcc -std=c99 可以支援 c99 06/02 22:26
→ Favonia:diabloevagto:不一樣...第三種宣告的位置在第一種指定的地 06/02 23:00
→ Favonia:方,而不是在開頭(我發現 littleshan 回了...) 06/02 23:01