高效C++编程
推薦編寫C++的代碼風(fēng)格,看似容易,堅持不易,且寫且珍惜! ?--陳國林
1.?版本和版本聲明
版本和版本文件聲明位于頭文件和定義文件的開頭,主要內(nèi)容
(1)版本信息
(2)文件名稱、標(biāo)識符、摘要
(3)當(dāng)前的版本號、作者、修改日期
(4)版本歷史信息
?
2.?程序版式
(1)在每個類聲明之后、每個函數(shù)定義之后都要加上一個空行
(2)一行代碼只做一件事情
(3)if、for、while、do各占一行,執(zhí)行語句不得緊跟其后,不論執(zhí)行語句多少都加上{}
(4)盡量在定義一個變量的時候就初始化該變量
(5)程序分界符{和}必須獨占一行并且左對齊
(6)代碼長度不宜超過70至80個字符,超過之后拆成新行,操作符放在新行之首
(7)應(yīng)該把*和&修飾符靠近變量名,例如int?*x?=?&a
(8)類中建議先把public類型寫在前面,再寫private類型
?
3.?命名規(guī)則
(1)類名和函數(shù)名要用大寫字母開頭單詞組成
(2)變量和參數(shù)要使用小寫字母開頭單詞組成
(3)常量全用大寫字母,用下劃線分割單詞
(4)靜態(tài)變量加上前綴s_,例如static?int?s_num
(5)全局變量加上前綴g_,例如int?g_num
(6)類的數(shù)據(jù)成員前面加上m_,可以和成員函數(shù)和靜態(tài)成員區(qū)分開
?
4.?表達(dá)式和基本語句
(1)不可將bool值直接和true、false、0、1進(jìn)行比較。如果flag是bool類型,直接if(flag)這樣判斷即可
(2)整型變量應(yīng)該要直接和0比較,比如num為整型變量,if(num?==?0)
(3)不可將浮點型變量直接用?==?和?!=來進(jìn)行比較
(4)指針變量要直接和NULL進(jìn)行比較,例如p為指針變量,if(p?!=?NULL)
?
5.?函數(shù)設(shè)計
(1)函數(shù)參數(shù)的書寫要完整,如果沒有參數(shù),用void填補(bǔ)
(2)如果參數(shù)有指針,并且該指針只是讀取作用應(yīng)該要加上const,防止指針意外修改
(3)在函數(shù)的內(nèi)部入口應(yīng)該要對參數(shù)的有效性進(jìn)行檢查
(4)函數(shù)的功能要單一,不要設(shè)計多用途的函數(shù)
(5)函數(shù)體的規(guī)模要小,控制在50行代碼
?
6.?內(nèi)存管理
(1)malloc和new申請內(nèi)存之后,應(yīng)該要立即檢查指針是否為NULL,防止使用指針值為NULL的內(nèi)存。
(2)要對數(shù)組和動態(tài)內(nèi)存賦初值,防止將未初始化的內(nèi)存作為右值使用
(3)用free或delete釋放了內(nèi)存之后,立即將指針指向NULL,防止產(chǎn)生野指針。
總結(jié)
- 上一篇: 编写实现atoi函数
- 下一篇: 使用STL的next_permutati