→ purincess:for裡面有declaration c89也不行XD 06/02 17:32
※ 引述《wzbird (大鳥)》之銘言:
: 其實比較像閒聊啦, 不過這邊沒有閒聊可以選
: 最近發現兩種coding style
: 第一種是會在函數前面宣告變數, 等到要用到的時候才給他初值
會這樣做是因為 C90 規定變數只能宣告在 block 的最開頭
但其實這並沒有什麼好處
因此 C++ 和 C99 都消除了這個限制
: 我想這兩種寫法應該是都可以, 只跟可讀性有關吧?
: 但是這邊的可讀性又不是會看不下去那種, 只是習慣問題.
: 不知道大家的習慣如何?
用到時才宣告並給初值是比較好的 style
一來這可以避免你忘記初始化
二來使用 class 的時候你也只能在宣告時初始化
第三個理由是原則上變數的 scope 愈小愈好
用到的時候才宣告不但比較節省資源
該變數也比較不容易被其它地方誤用
: ====
: 補充一下
: 我看到第二種寫法那套code 他連for loop一定先給值
: 他的for loop 會這樣寫
: int func()
: {
: int i = 0;
: /*other code*/
: for (; i < MAX; i++)
: {
: /*do something*/
: }
: }
: 所以這樣是比較嚴謹的方法嗎?
: 可以避免i 沒有宣告到之類的
我會寫 for(int i = 0; i < MAX; i++)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.77.184