參考中文版谷歌開(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 PropertiesMap;// using 別名using PropertiesMap = hash_map;// 枚舉enum UrlTableErrors { ...

3、變量命名

變量(普通變量、函數(shù)參數(shù))和數(shù)據(jù)成員全部用小寫(xiě)字母單詞之間用下劃線(xiàn)連接變量和結(jié)構(gòu)體的數(shù)據(jù)成員最后不用連接下劃線(xiàn),但是類(lèi)的數(shù)據(jù)成員最后要連接下劃線(xiàn)

例如:

string table_name; class TableInfo {...private: string table_name_; static Pool* pool_; };struct UrlTableProperties { string name; int num_entries; static Pool* 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