在函式體的 "出口處" ,對return語句的正確性和效率進行檢查
注意事項如下:
(1) return 語句不可返回指向「棧記憶體」的「指標」或者「引用」(即函式的區域性變數),因為該內存在函式體結束時被自動銷毀
char * func(void)
(3) 如果函式返回值是乙個物件,要考慮return 語句的效率。
return string(s1 + s2);
//直接建立乙個臨時物件並返回它
//效率比較高
string temp(s1 + s2);
return temp;
//先建立乙個區域性物件temp,之後使用乙個臨時物件接收它,最終返回它的結果
//效率低下
高質量C 程式設計 第6章 函式設計 1
6.1 引數的規則 規則6 1 1 引數的書寫要完整,如果函式沒有引數,則用void 填充 void setvalue int width,int height 良好的風格 float getvalue void 良好的風格 void setvalue int,int 不良的風格 float get...
高質量C 程式設計 第6章 函式設計 2
在函式 或 前後 判斷引數 或 變數的合法性 方法 使用斷言 assert 作用 用來檢查一些必須符合的條件,捕捉 不應該 發生的非法情況,如果不符合條件,則不讓程式繼續執行下去。使用時間 位置 前置條件斷言 執行之前 或 在函式的入口處,使用斷言檢查 引數 的合法性。斷言執行 表示呼叫者出錯了 後...
高質量程式設計指南 第1章
規則1 2 1 為了防止標頭檔案被重複引用,應當用ifndef define endif結構產生預處理塊。一 為什麼會出現標頭檔案被重複引用的問題 在乙個cpp檔案中,可以包含多個標頭檔案,而標頭檔案間又是可以相互引用的,這就導致乙個cpp檔案中可能間接多次包含某個標頭檔案,如果標頭檔案中 沒有防止...