C++代碼標准之定名規矩。本站提示廣大學習愛好者:(C++代碼標准之定名規矩)文章只能為提供參考,不一定能成為您想要的結果。以下是C++代碼標准之定名規矩正文
1、定名的兩個根本准繩
1、寄義清楚,不容易混雜;
2、和睦其它模塊、體系API的定名空間相抵觸。
2、定名公則
1、在一切定名中,都應應用尺度的英文單詞或縮寫;不得應用拼音或拼音縮寫,除非該名字描寫的是文
獨有的內容(如半角、全角、聲母、韻母等);除非需要,不要用數字或較奇異的字符來界說標識符。
2、一切定名都應遵守達意准繩,即稱號應寄義清楚、明白。
3、一切定名都不容易太長,應掌握在劃定的最年夜長度之內。
4、一切定名都應盡可能應用全稱。
5、定名中若應用特別商定或縮寫,則要有正文解釋。
6、本身獨有的定名作風,要自始至終堅持分歧,弗成往返變更。
解釋:小我的定名作風,在相符地點項目組或產物組的定名規矩的條件下,才可以使用。(即定名規矩中沒有劃定到的處所才可有小我定名作風)。
7、在統一軟件產物內,應計劃好接口部門標識符(變量、構造、函數及常量)的定名,避免編譯、鏈接時發生抵觸。
8、關於變量定名,制止取單個字符(如i、j、k...),建議除要有詳細寄義外,還能注解其變量類型、數據類型等,但i、j、k作部分輪回變量是許可的。
解釋:變量,特別是部分變量,假如用單個字符表現,很輕易敲錯(如i寫成j),而編譯時又檢討不出來,有能夠為了這個小小的毛病而消費年夜量的查錯時光。
例:上面所示的部分變量名的界說辦法可以自創。
int liv_Width
其變量名說明以下:
l 部分變量(Local) (其它:g全局變量(Global)...)
i 數據類型(Interger)
v 變量(Variable) (其它:c常量(Const)...)
Width 變量寄義
如許可以避免部分變量與全局變量重名。
9、定名標准必需與所應用的體系作風堅持分歧,並在統一項目中同一,好比采取UNIX的全小寫加下劃線的作風或年夜小寫混排的方法,不要應用年夜小寫與下劃線混排的 方法,用作特別標識如標識成員變量或全局變量的m_和g_,厥後加上年夜小寫混排的方法是許可的。
例: Add_User不許可,add_user、AddUser、m_AddUser許可。
10、用准確的反義詞組定名具有互斥意義的變量或相革命作的函數等。
解釋:上面是一些在軟件中經常使用的反義詞組。
add / remove begin / end create / destroy insert / delete
first / last get / releaseincrement / decrement put / get
add / delete lock / unlockopen / closemin / max
old / newstart / stopnext / previoussource / target
show / hide send / receive up / downcut / paste
例:
int min_sum;
int max_sum;
int add_user( BYTE *user_name );
int delete_user( BYTE *user_name );
11、除編譯開關/頭文件等特別運用,應防止應用_EXAMPLE_TEST_之類以下劃線開端和開頭的界說。
12、法式中不要湧現標識符完整雷同的部分變量和全局變量,雖然二者的感化域分歧而不會產生語法毛病,但會令人誤會。
3、詳細標准
1、工程名
不強迫同一。
2、文件名:
基於工程名,開首3個字母應注解與哪個工程相干。
前面的字母應可以或許差別分歧的功效。
不辨別年夜小寫。
長度不限於8.3格局,建議不多於30個字符。
若文件用於界說和完成類,建議文件名與類名堅持分歧。
3、函數名:
參照 Windows API 的定名標准。
推舉應用動賓構造。函數名應清楚反應函數的功效、用處。
函數名最長不得跨越30個字符。
函數名第一個字母必需年夜寫。
全局函數必需以小寫前綴"g"開首。全局函數的名字應該應用“動詞”或許“動詞+名詞”(動賓詞組)。類的成員函數應該只應用“動詞”,被省略失落的名詞就是對象自己。
例:
DrawBox(); // 全局函數
box->Draw(); // 類的成員函數
4、變量名:
准繩上,變量名的定名服從匈牙利記法。即:前綴 + 類型 + 變量名
變量名最長不得跨越20個字符。
變量的名字應該應用“名詞”或許“描述詞+名詞”。
例:
float value;
float oldValue;
1)格局:[m_|s_|g_] type [class name|struct name] variable name
2)說明:
m_ : 類的成員變量
ms_:類的靜態成員變量
s_ :靜態全局變量
g_ :通俗全局變量
類型縮寫(type)
char, TCHAR: ch
char[],TCHAR[]: sz
bool, BOOL: b
int, __int16,__int32,__int64: n
long: l
double: d
float: ft
BYTE: by
WORD: w
DWORD: dw
unsigned: u
function: fn
p :pointer
lp :pointer
5、類名:
必需以年夜寫"K"開首,前面字母反應詳細寄義,以清楚表達類的用處和功效為准繩。
接口必需以年夜寫"I"開首,代表 Interface 。
當稱號由多個單詞組成時,每個單詞的第一個字母必需年夜寫。
6、構造名、宏名、列舉名、結合名:
全體年夜寫。
列舉名加小寫前綴"enum"。
例:
typedef enum _KFILE_OPEN_MODE
{
enumOPEN_READONLY = 0;
enumOPEN_READWRITE = 1;
enumCREATE_ALWAY = 3 ;
} KFILE_OPEN_MODE;
宏名加小寫前綴"def"。
例:
#define defMAXNUMBER 100
構造名加小寫前綴"tag",以後必需以年夜寫"K"開首。
例:
typedef struct tagKPOINT
{
int x;
int y;
} KPOINT;
結合名加小寫前綴"uni"。
例:
typedef union _VARIANT
{
char unichVal;
int uninVal;
long unilVal;
float uniftVal;
} VARIANT;
解釋:對接口部門的標識符應當有更嚴厲限制,避免抵觸。如可劃定接口部門的變量與常量之前加上 “模塊”標識等。
解釋:應當在源文件的開端的地方,對文件中所應用的縮寫或商定,特殊是特別的縮寫,停止需要的正文解釋。
解釋:較短的單詞可經由過程去失落“元音”構成縮寫;較長的單詞可取單詞的頭幾個字母構成縮寫。
一些單詞有年夜家公認的縮寫。
例:temp 可縮寫為 tmp
flag 可縮寫為 flg
statistic 可縮寫為 stat
increment 可縮寫為 inc
message 可縮寫為 msg