參考中文版谷歌開(kāi)源項(xiàng)目風(fēng)格指南,但是并不與其完全相同,整理出來(lái)便于規(guī)范自己的編碼風(fēng)格。
一、命名規(guī)范
1、文件命名
文件名全部小寫(xiě),如果項(xiàng)目沒(méi)有命名約定則用下劃線(xiàn)"_"分隔開(kāi)c++文件以.cc結(jié)尾,頭文件以.h結(jié)尾,專(zhuān)門(mén)插入文本的文件以.inc結(jié)尾定義類(lèi)時(shí)文件名成對(duì)出現(xiàn)內(nèi)聯(lián)函數(shù)強(qiáng)制放在.h文件中不要使用與/usr/include(編譯器搜索系統(tǒng)頭文件的目錄)下相同的文件名2、類(lèi)型命名
類(lèi)型包括:類(lèi)、結(jié)構(gòu)體、類(lèi)型命名(typedef)、枚舉、模板參數(shù) --- 均使用相同命名規(guī)定: 以大寫(xiě)字母開(kāi)始,每個(gè)單詞首字母均大寫(xiě),不包含下劃線(xiàn)
例如:
// 類(lèi)和結(jié)構(gòu)體class UrlTable { ...class UrlTableTester { ...struct UrlTableProperties { ...// 類(lèi)型定義typedef hash_map 3、變量命名
例如:
string table_name; class TableInfo {...private: string table_name_; static Pool 4、常量命名
常量命名和谷歌的編程規(guī)范的常量命名的規(guī)則不盡相同。命名規(guī)則如下:
所有的常量前面加上con(google建議前面加上k)其后的每個(gè)單詞采用駝峰命名規(guī)則例如:
const int conDaysInWeek = 7;
5、函數(shù)命名
這里的函數(shù)分為兩種:普通的函數(shù)、取值或者設(shè)值的函數(shù)
普通的函數(shù)使用駝峰命名規(guī)則,所有的首字母均大寫(xiě),對(duì)于縮寫(xiě)的符號(hào)比如RPC,也應(yīng)該將其視為一個(gè)單詞首字母大寫(xiě)取值或者設(shè)值的函數(shù)應(yīng)該與對(duì)應(yīng)的變量相配合,可以使用下劃線(xiàn)連接單詞或者駝峰命名的規(guī)則例如:
void OpenFile(string file_name);//對(duì)應(yīng)于成員int count;int count();//取值函數(shù)int set_count();//設(shè)值函數(shù)
6、枚舉命名
枚舉命名應(yīng)該保持與常量的命名規(guī)則相同,因?yàn)槊杜e類(lèi)型中的每個(gè)元素的值都是確定的。
例如:
enum SystemStatus{ conOK = 0, conLOST = 1,}
7、宏命名
不建議使用宏,宏不會(huì)進(jìn)行類(lèi)型檢查,而且還有可能導(dǎo)致變量重定義等問(wèn)題。可以使用內(nèi)聯(lián)函數(shù)代替。
宏命名全部大寫(xiě),單詞之間用下劃線(xiàn)隔開(kāi)例如:
#define ROUND(x) ...#define PI_ROUNDED 3.0
8、命名空間命名
命名空間以小寫(xiě)字母命名.最高級(jí)命名空間的名字取決于項(xiàng)目名稱(chēng).要注意避免嵌套命名空間的名字之間和常見(jiàn)的頂級(jí)命名空間的名字之間發(fā)生沖突.頂級(jí)命名空間的名稱(chēng)應(yīng)當(dāng)是項(xiàng)目名或者是該命名空間中的代碼所屬的團(tuán)隊(duì)的名字. 命名空間中的代碼, 應(yīng)當(dāng)存放于和命名空間的名字匹配的文件夾或其子文件夾中.
1.《命名規(guī)范 C++編程規(guī)范-命名規(guī)范》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀(guān)點(diǎn),與本網(wǎng)站無(wú)關(guān),侵刪請(qǐng)聯(lián)系頁(yè)腳下方聯(lián)系方式。
2.《命名規(guī)范 C++編程規(guī)范-命名規(guī)范》僅供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。
3.文章轉(zhuǎn)載時(shí)請(qǐng)保留本站內(nèi)容來(lái)源地址,http://f99ss.com/keji/347297.html