華爲軟件編程規範學習(三)--標識符命名
轉自:http://blog.csdn.net/ce123_zhouwei/article/details/8886016
3-1:標識符的命名要清晰、明瞭,有明確含義,同時使用完整的單詞或大家基本可以理解的縮寫,避免使人產生誤解
說明:較短的單詞可通過去掉“元音”形成縮寫;較長的單詞可取單詞的頭幾個字母形成縮寫;一些單詞有大家公認的縮寫。
示例:如下單詞的縮寫能夠被大家基本認可。
temp 可縮寫爲 tmp ;
flag 可縮寫爲 flg ;
statistic 可縮寫爲 stat ;
increment 可縮寫爲 inc ;
message 可縮寫爲 msg ;
3-2:命名中若使用特殊約定或縮寫,則要有註釋說明
說明:應該在源文件的開始之處,對文件中所使用的縮寫或約定,特別是特殊的縮寫,進行必要的註釋說明。
3-3:自己特有的命名風格,要自始至終保持一致,不可來回變化
說明:個人的命名風格,在符合所在項目組或產品組的命名規則的前提下,纔可使用。(即命名規則中沒有規定到的地方纔可有個人命名風格)。
3-4:對於變量命名,禁止取單個字符(如i、j、k...),建議除了要有具體含義外,還能表明其變量類型、數據類型等,但i、j、k作局部循環變量是允許的
說明:變量,尤其是局部變量,如果用單個字符表示,很容易敲錯(如i寫成j),而編譯時又檢查不出來,有可能爲了這個小小的錯誤而花費大量的查錯時間。
示例:下面所示的局部變量名的定義方法可以借鑑。
int liv_Width
其變量名解釋如下:
l 局部變量(Local) (其它:g 全局變量(Global)...)
i 數據類型(Interger)
v 變量(Variable) (其它:c 常量(Const)...)
Width 變量含義
這樣可以防止局部變量與全局變量重名。
3-5:命名規範必須與所使用的系統風格保持一致,並在同一項目中統一,比如採用UNIX的全小寫加下劃線的風格或大小寫混排的方式,不要使用大小寫與下劃線混排的方式,用作特殊標識如標識成員變量或全局變量的m_和g_,其後加上大小寫混排的方式是允許的
示例:Add_User不允許,add_user、AddUser、m_AddUser允許。
其他
3-1:除非必要,不要用數字或較奇怪的字符來定義標識符
示例:如下命名,使人產生疑惑。
#define _EXAMPLE_0_TEST_
#define _EXAMPLE_1_TEST_
void set_sls00( BYTEsls );
應改爲有意義的單詞命名
#define _EXAMPLE_UNIT_TEST_
#define _EXAMPLE_ASSERT_TEST_
void set_udt_msg_sls(BYTE sls );
3-2:在同一軟件產品內,應規劃好接口部分標識符(變量、結構、函數及常量)的命名,防止編譯、鏈接時產生衝突
說明:對接口部分的標識符應該有更嚴格限制,防止衝突。如可規定接口部分的變量與常量之前加上“模塊”標識等。
3-3:用正確的反義詞組命名具有互斥意義的變量或相反動作的函數等
說明:下面是一些在軟件中常用的反義詞組。
add /remove begin /end create / destroy
insert /delete first /last get / release
increment /decrement put / get
add /delete lock /unlock open / close
min /max old /new start / stop
next /previous source / target show / hide
send /receive source / destination
cut /paste up / down
示例:
int min_sum;
int max_sum;
int add_user( BYTE *user_name );
int delete_user( BYTE *user_name );
3-4:除了編譯開關/頭文件等特殊應用,應避免使用_EXAMPLE_TEST_之類以下劃線開始和結尾的定義