歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> C/C++代碼命名和格式規范

C/C++代碼命名和格式規范

日期:2017/3/1 10:03:18   编辑:Linux編程

命名

命名,包括文件名、類名、結構名、類型名、函數名、變量名、參數名等都是程序設計中重要的一部分。一個好的名稱,體現了一個深思熟慮的過程,同時也能夠幫助別人更好地理解開發者的思路。如果發現程序中,充滿了a, b, c, x, y, z,tmp這種命名的變量,這時候就需要仔細的考慮自己的實現是否有問題。

類(結構)名
類名必須是名詞,類名必須明確表示這個類代表了什麼。
如果類名超過3個單詞,說明這個類有可能需要拆分了。
不要把父類的名字帶到子類中。
類名加上後綴也是一種選擇。如下載代理類,可以寫為DownloadProxy。
類名首字母大寫;用大寫字母分隔單詞,除單詞的首字母外,全部小寫;類名中不要出現下劃線“_”。

類(結構)屬性名
屬性由成員前綴”m_“屬性,屬性名采用匈牙利命名規范。

方法
方法與函數執行一個任務,因此應當用動詞來命名。比方說,DumpDataToFile()就要好於DataFile()。
方法名首字母大寫;用大寫字母分隔單詞,除單詞的首字母外,全部小寫,方法名中不要出現下劃線。

函數
方法與函數執行一個任務,因此應當用動詞來命名。
函數名全部小寫,單詞之間用下劃線分隔。

方法與函數參數名
首字母小寫。
除了第一個單詞,所有單詞的首字母大寫。
名稱中不應出現”_”。

類庫名
如果使用C書寫類庫,或在C++不使用namespace書寫類庫,為了避免命名沖突,需要在類名,結構名,函數名前加上類庫名前綴。類庫名應當簡潔、明確。如:
ImEgg*ImEgg_new();

變量名
變量名使用匈牙利命名規則。
全部小寫字母。
使用”_”作為分隔符。
唯一能違反以上命名規則的,是一些循環中需要用到的自增變量。 如:
intfun(Point* pPoint)
{
Point* p_nest_point = pPoint;
char* p = NULL;
char sz_buf[255];
for (int i = 0; i < 50 && (sz_buf+p++) != ' ';i++)
{
// do stuff
}
}
另外,循環變量可根據循環變量類型命名,比如:

p point;w word; ch char; n number; whc widechar

指針變量
指針變量應在類型前加上p前綴,其後變量名命名規則不變。
*號永遠靠近類型,一行聲明中只出現一個指針變量。 如:
Point* p_point;

引用變量
引用變量應在類型前加上r前綴,其後變量名命名規則不變。

全局變量
全用變量應使用g_屬性描述,其後變量名命名規則不變。 如:
ImLog4c* g_pLogger;

靜態變量
靜態變量應使用s_屬性描述,其後變量名命名規則不變。
ImLog4c* s_pLogger;

枚舉類型
枚舉類型命名規則使用大寫字母,用下劃線分隔單詞。
Enum PIN
{
PIN_ON = 1;
PIN_OFF;
};

Copyright © Linux教程網 All Rights Reserved