看板 C_and_CPP 關於我們 聯絡資訊
跳 tone 一下
LPH66:維基百科上竟然有條目...12/22 21:49
有花時間摸 Code::Blocks 網友應該對這些縮排方式不陌生, 我沒記錯的話在 Code::Blocks 10.05 時候就有支援 A-Style 自動縮排, 然後自動縮排的風格可以進行設定,以我手邊 12.11 版本來講, 放在 Setting -> Editor ,左半部再點 Source formatter, http://ppt.cc/BwIM 可以發現其實目前 wiki 上列表的縮排風格,裡面大多都有了, 右邊都還有預覽的範例,有興趣可開起來看看。 然後原 po 只給 function 最外層的大括號,其實還判別不出來是哪種風格。 ------------------------------ 初學書不少是用 ANSI 風格 void func() { for(int i =0 ; i < 10 ; ++i) { /* whatever */ } } 用 ANSI 風格理由都不外乎是括號都是要對應,一眼看起來整整齊齊, 到時候 Debug 比較方便 ( 但真的是比較方便嗎 Orz )。 anyway, 我個人是用 K & R 風格,好處是一個螢幕可見之程式碼可以比較多。 void func() { for(int i =0 ; i < 10; ++i) { // some script } } 如果連 if-else if-else if / switch -case 都要講的話,我想又可以再粗略分門 別類了,這裡我就略過。 用哪種風格都不要緊,重點只有三個, (1) 若有團體規範,是跟著團體規範跑。假設團體是用 ANSI , 就算自己有 100 個理由用 K & R 會比較好,但還是跟團體跑。 別期待自己那 100 個理由可以改變整個團隊風格,團體中絕不允許特異獨行。 ( 何況我想也不會有人在團隊裡為了縮排的事在爭執吧? ) (2) ANSI 對於右邊的大括號,較多書會建議加上註解,這在深層 loop 時 較有幫助,如 for(int i = 0 ; i < N ; ++i) { for(int j = 0 ; j < M ; ++j) { for(int k = 0 ; k < P ; ++k) { /* what ever */ } /// end of for k } //// end of for j } /// end of for i 這也不是必然的,只是說了,這是我見過的 "建議" 。 會有這種 end of loop 式的註解純粹是 ANSI-style 在 Code 拉長時, 分不清目前的敘述是在哪個糟狀 (nest) 裡,目前我所知減少這種情況有幾種方式: 括號對應快捷鍵幫助釐清、利用 IDE 輔助 "縮疊" 功能、改用 K & R Style, 但上述的三種方式都只是能 "改善" 這情形發生,真正遇到亂入的 Code 還是要 頭腦清晰就是了。 (3) 這點前幾篇推文有提到了,如果是自己一個人開發, 不論是縮排、變數命名,只要符合一定規則,並從頭到尾去實現這種方式, 那就算是好的規範。可惜的是現實生活中,大專案很難是一個人去搞的,除非 是案外案比較有可能,自己要搞的額外小 tool 給內部使用。 以上 參考。 -- ~ 這輩子與神手無緣 我只好當神獸了 ~ 卡卡獸 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.177.74.188
danny8376:推 說真的 很多時候自己習慣是一回事 真的開發全看別人 12/24 06:48
xuantw:Whitesmiths style...自己慣 12/24 08:33
flydragon198:開發的時候就要遵守團隊和公司規定了 12/24 16:02