關於註釋:
空行也是有效的註釋,應該在不一樣邏輯塊之間添加空行。
過期的註釋會浪費代碼維護者的大量時間,若是更新了代碼致使註釋過期,就算沒有時間更新註釋,那就請把錯誤的註釋刪掉。
避免無效的註釋,好比:int i = 0; //賦值成0
關於函數規模:
函數的功能要保持單一,儘可能將函數的規模控制在50行之內。
不要等到一個函數變得冗長時,纔想要拆分,每每那時候已經晚了:在多人協做的項目中,改動這麼大片代碼是頗有風險的,既然產品只要我增長一個功能,我又何須麻煩本身呢?因此,拆分函數要趁早!
關於異常:
不要捕獲異常後,不作處理!
由於忽略異常後,代碼繼續執行,可能會在某一個地方產生Crash,而Crash的地方已經於異常發生的位置相隔甚遠,這會讓問題的定位異常艱難。記住,若是不知道怎麼處理異常,寧願不catch,就讓它Crash吧,這至少方便程序員定位問題。
善於從別人的代碼中學習:
char* strcpy(char *dst, const char *src)
{
assert(NULL != dst && NULL != src);
char *addr = dst;
while((*dst++=*src++))
;
return addr;
}
strcpy的實現,有幾點能夠學習: c++
1. 用NULL而不是0,方便閱讀。
2. strcpy返回目標字符串的地址,是爲了可以進行級聯操做,好比能夠這樣計算出目標字符串的長度:strlen(strcpy(dst, src)),cout也是同理:cout << "a" << "b" << endl; 在寫C++函數時,要考慮一下,個人函數是否也要支持這種操做。
4 strcpy的src的類型帶有const,除了保證src不變之外,const char *還會兼容char *。若是寫成char *,那麼strcpy就不能接受const char *的src了。