Re: [心得] 學好程式設計的訣竅
※ 引述《jccko (jccko)》之銘言:
: 這樣子吧..
: enum rs232Flag{rs232Open=0, rs232Close=1};
: ...
: rs232Flag RS232com1 = rs232Close;
: ...
: if(rs232Open == RS232com1){//常數放左邊是一個好習慣
: //...does something
: }
: 這個例子比較簡單,所以看不出加註解的必要。
: 通常寫程式我個人建議一定要放註解,尤其是每個函式的前面,要描述這個
: 函式的功能,使用了哪些資料結構與演算法,輸入參數的用途,越詳細越好,
: 如同寫報告一般。如此就算是上萬行的程式碼,也可以讓第三者輕鬆掌握程
: 式架構。
分享一下小弟的拙見~
enum RS232_flag{CLOSE, OPEN};
void foo(){
RS232_flag com1;
// blah......
if(com1 == OPEN){
//blah....
}
}
主要的差異在於命名方面。對於一個datatype/class,給予完整可描述其意義的
名稱是有必要的,如此可以明確表示此datatype/class的用途。
enum中的識別字我使用全部大寫,原因是他為一個常數,全大寫較符合多數慣例。
宣告出來的變數(com1)我並不加上前綴"RS232",只使用com1代表這個flag所要表示
的對象「本身」,原因是他是RS232這件事只要看宣告就知道了...
但是變數命名我認為是要看前後文的,以不混淆其意義為主。
至於常數放前面這件事...就是個人習慣了XD 我很少發生把equal打成assignment的情況
補充:關於變數加上前綴這件事,我相信有人會提出(或是想到)匈牙利命名法...
在此分享一篇文章給各位,這篇文章是著名的Joel on Software的一小段
讀過以後,顛覆了我過去對匈牙利命名法的錯誤看法(或至少是某部分的匈牙利命名法)
原來在最初的設計上,前綴是用來表示種類...而不是datatype....
這樣才真的合理,因為變數命名是命給人看的,不是命給compiler看的...
文章連結:http://chinesetrad.joelonsoftware.com/Articles/Wrong.html
請直接跳到這篇文章的約3/4處 「我是匈牙利」
以上還請各位指教<(_ _)>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 124.8.77.165
推
10/20 14:44, , 1F
10/20 14:44, 1F
推
10/21 00:44, , 2F
10/21 00:44, 2F
討論串 (同標題文章)