Re: [心得] 學好程式設計的訣竅

看板C_and_CPP作者 (jccko)時間15年前 (2010/10/18 23:56), 編輯推噓9(9010)
留言19則, 5人參與, 最新討論串13/14 (看更多)
這樣子吧.. 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

10/19 09:35, , 1F
10/19 09:35, 1F

10/19 09:41, , 2F
常數放左邊,印象中是怕誤打,把==打成=吧,我有記錯嗎?
10/19 09:41, 2F

10/19 09:57, , 3F
p 大沒記錯, 但是我覺得要看個人, 非關習慣好不好, 像
10/19 09:57, 3F

10/19 09:58, , 4F
謝謝
10/19 09:58, 4F

10/19 09:58, , 5F
是 1 <= x && x <= 10, 寫成類似數學的notation個人覺
10/19 09:58, 5F

10/19 09:58, , 6F
得比較好懂, 硬是把常數都寫左邊, 反而還要想一下
10/19 09:58, 6F

10/19 21:28, , 7F
常數寫左邊是用在==而已啊,上面的例子也不是==
10/19 21:28, 7F

10/19 23:41, , 8F
難道樓上遇到 == 就要把常數擺左邊, 其他情況就不是嗎
10/19 23:41, 8F

10/19 23:41, , 9F
這樣只是把你的寫作風格弄得亂七八糟, 更容易把看的人
10/19 23:41, 9F

10/19 23:41, , 10F
搞迷糊罷了
10/19 23:41, 10F

10/20 11:30, , 11F
可以請教一下樓上怎麼避免少了一個 = 的 == 錯誤嗎?
10/20 11:30, 11F

10/20 12:27, , 12F
多使用functor, 或是利用具名函式 equals, 來呈現比較
10/20 12:27, 12F

10/20 12:27, , 13F
的意圖
10/20 12:27, 13F

10/21 15:45, , 14F
這已經超出小弟的能力範圍,該學的果然很多orz
10/21 15:45, 14F

10/21 19:10, , 15F
不過這會依賴到compiler的最佳化, 不然執行時間還是會
10/21 19:10, 15F

10/21 19:11, , 16F
多一些, 但是我是那種為了可讀性可以犧牲一切的人...
10/21 19:11, 16F

10/21 19:51, , 17F
推 樓上的觀點
10/21 19:51, 17F

10/22 15:55, , 18F
歐歐我學c的...還是第一次學到用enum的 謝啦
10/22 15:55, 18F

10/22 17:28, , 19F
enum是C的東西沒錯阿 XD
10/22 17:28, 19F
文章代碼(AID): #1ClDwr2K (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 13 之 14 篇):
文章代碼(AID): #1ClDwr2K (C_and_CPP)