軟件代碼幾種常見命名規(guī)則
很多工程師不注重平時編碼習(xí)慣,比如命名規(guī)則,一會大寫、一會小寫,一會中文拼音,一會下劃線等,導(dǎo)致自己寫的代碼自己都看不懂了。
今天就來分享一點(diǎn)關(guān)于軟件代碼常見的幾種命名規(guī)則。
匈牙利命名法
匈牙利命名法廣泛應(yīng)用于微軟 Windows 這類環(huán)境中,這種命名技術(shù)是由微軟早期的一位能干的 Microsoft 程序員查爾斯·西蒙尼(Charles Simonyi) 提出的。
匈牙利命名法通過在變量名前面加上相應(yīng)的小寫字母的符號標(biāo)識作為前綴,標(biāo)識出變量的作用域、類型等。
這些符號可以多個同時使用,順序是先m_(成員變量),再指針,再簡單數(shù)據(jù)類型,再其他。
例如:m_lpszStr, 表示指向一個以0字符結(jié)尾的字符串的長指針成員變量。
匈牙利命名法關(guān)鍵是:標(biāo)識符的名字以一個或者多個小寫字母開頭作為前綴,前綴之后的是首字母大寫的一個單詞或多個單詞組合,該單詞要指明變量的用途。
例如:bEnable, nLength, hWnd。
下面分享關(guān)于匈牙利命名法中常用的小寫字母的前綴。
屬性部分:
g_ 全局變量
c_ 常量
m_ c++類成員變量
s_ 靜態(tài)變量
類型部分:
描述部分
駝峰命名法
駝峰命名法近年來越來越流行,駝峰命名法,正如它的名稱所表示的那樣,指的是混合使用大小寫字母來構(gòu)成標(biāo)識符的名字。其中第一個單詞首字母小寫,余下的單詞首字母大寫。
例如:printEmployeePaychecks();
函數(shù)名中每一個邏輯斷點(diǎn)都有一個大寫字母來標(biāo)記。
帕斯卡命名法
帕斯卡命名法與駝峰命名法類似,只不過駝峰命名法是第一個單詞首字母小寫,而帕斯卡命名法則是第一個單詞首字母大寫。因此這種命名法也有人稱之為“大駝峰命名法”。
例如:DisplayInfo(); UserName
都是采用了帕斯卡命名法。
事實(shí)上,很多程序設(shè)計者在實(shí)際命名時會將駝峰命名法和帕斯卡結(jié)合使用,例如變量名采用駝峰命名法,而函數(shù)采用帕斯卡命名法。
下劃線命名法
下劃線法是隨著C語言的出現(xiàn)流行起來的,在UNIX/LIUNX這樣的環(huán)境,以及GNU代碼中使用非常普遍。
1.函數(shù)的命名
函數(shù)名使用下劃線分割小寫字母的方式命名:
設(shè)備名_操作名();
操作名一般采用:謂語(此時設(shè)備名作為賓語或者標(biāo)明操作所屬的模塊)或者謂語 賓語/表語(此時設(shè)備名作為主語或者標(biāo)明操作所屬的模塊) 等形式,如:
tic_init();
adc_is_busy();
uart_tx_char();
中斷函數(shù)的命名直接使用 設(shè)備名_isr() 的形式命名,如:
timer2_isr();
2.變量的命名
變量的命名也采用下劃線分割小寫字母的方式命名。命名應(yīng)當(dāng)準(zhǔn)確,不引起歧義,且長度適中。如:
int length;
uint32 test_offset;
單字符的名字也是常用的,如i, j, k等,它們通??捎米骱瘮?shù)內(nèi)的局部變量。tmp常用做臨時變量名。
局部靜態(tài)變量,應(yīng)加s_詞冠(表示static),如:
static int s_lastw;
全局變量(尤其是供外部訪問的全局變量),應(yīng)加g_詞冠(表示global),如:
void (* g_capture_hook)(void);
3.常量及宏的命名
采用下劃線分割大寫字母的方式命名,一般應(yīng)以設(shè)備名作為前綴,防止模塊間命名的重復(fù)。如:
#define TIMER0_MODE_RELOAD 2
#define TIMER2_COUNT_RETRIEVE(val) ((uint16)(65536 - (val)))
當(dāng)然,看作接口的宏可以按照函數(shù)的命名方法命名,例如:
#define timer2_clear() (TF2 = 0)
#define timer0_is_expired() (TF0)
據(jù)考察,沒有一種命名規(guī)則可以讓所有的程序員贊同,程序設(shè)計教科書一般都不指定命名規(guī)則。
命名規(guī)則對軟件產(chǎn)品而言并不是“成敗悠關(guān)”的事,我們不要化太多精力試圖發(fā)明世界上最好的命名規(guī)則,而應(yīng)當(dāng)制定一種令大多數(shù)項(xiàng)目成員滿意的命名規(guī)則,并在項(xiàng)目中貫徹實(shí)施。
聲明:本文素材來源網(wǎng)絡(luò),版權(quán)歸原作者所有。如涉及作品版權(quán)問題,請與我聯(lián)系刪除。
評論