看板 C_and_CPP 關於我們 聯絡資訊
這樣子吧.. enum rs232Flag{rs232Open=0, rs232Close=1}; ... rs232Flag RS232com1 = rs232Close; ... if(rs232Open == RS232com1){//常數放左邊是一個好習慣 //...does something } 這個例子比較簡單,所以看不出加註解的必要。 通常寫程式我個人建議一定要放註解,尤其是每個函式的前面,要描述這個 函式的功能,使用了哪些資料結構與演算法,輸入參數的用途,越詳細越好, 如同寫報告一般。如此就算是上萬行的程式碼,也可以讓第三者輕鬆掌握程 式架構。 ※ 引述《goodrain (大橘永澤邱哥)》之銘言: : 關於大家對註解的歧見,我想跟大家分享一下書中對於註解的建議 : 他是這麼說的: : 比如說我們常寫到以下程式 : int com = 0 ; //RS232的旗標 0 是關閉 1 是開啟 : if(com = = 1) //RS232通訊開啟 : { : } : 如果換寫成這樣呢? : int RS232com1_flag = 0 ,close = 1 ,Open = 0; : if(RS232com1_flag = = Open) : { : } : 咦?發生了什麼事.... : 所有註解都不見了吧 : 變數一看就知道是什麼了 : 這種方法好處特別是在程式越來越大的情況之下,旗標設定很容易遠遠的遠離使用的地方 : 且旗標狀態往往可能用到四~五個狀態以上,如果不這樣寫.... : 就會寫出連自己都會看錯的程式,更何況是同事或客戶要來理解了... : 我自己的親身經歷是 : 我一開始用第一種方法 程式寫了七百行左右就開始吐血了 (功力低弱...) : 寫到後來想修改或添加新功能,不管如何修改都會有BUG : 現在發憤整個重寫程式,且順便新增了一堆功能上去 : 目前程式來到了1500行,我還覺得這不是我的極限 XDDD : 不過最一開始那位提說不看註解的大大 : 其實我覺得他也是對的/....\ : 這是學習的其中一個過程 : 因為總不能要求小朋友做的紙飛機時 : 要求他在上面要可以掛巡弋飛彈吧? : 大家一起加油吧~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 165.91.193.130
BlazarArc:推 10/19 09:35
purpose:常數放左邊,印象中是怕誤打,把==打成=吧,我有記錯嗎? 10/19 09:41
loveme00835:p 大沒記錯, 但是我覺得要看個人, 非關習慣好不好, 像 10/19 09:57
purpose:謝謝 10/19 09:58
loveme00835:是 1 <= x && x <= 10, 寫成類似數學的notation個人覺 10/19 09:58
loveme00835:得比較好懂, 硬是把常數都寫左邊, 反而還要想一下 10/19 09:58
BlazarArc:常數寫左邊是用在==而已啊,上面的例子也不是== 10/19 21:28
loveme00835:難道樓上遇到 == 就要把常數擺左邊, 其他情況就不是嗎 10/19 23:41
loveme00835:這樣只是把你的寫作風格弄得亂七八糟, 更容易把看的人 10/19 23:41
loveme00835:搞迷糊罷了 10/19 23:41
BlazarArc:可以請教一下樓上怎麼避免少了一個 = 的 == 錯誤嗎? 10/20 11:30
loveme00835:多使用functor, 或是利用具名函式 equals, 來呈現比較 10/20 12:27
loveme00835:的意圖 10/20 12:27
BlazarArc:這已經超出小弟的能力範圍,該學的果然很多orz 10/21 15:45
loveme00835:不過這會依賴到compiler的最佳化, 不然執行時間還是會 10/21 19:10
loveme00835:多一些, 但是我是那種為了可讀性可以犧牲一切的人... 10/21 19:11
xatier:推 樓上的觀點 10/21 19:51
goodrain:歐歐我學c的...還是第一次學到用enum的 謝啦 10/22 15:55
xatier:enum是C的東西沒錯阿 XD 10/22 17:28