
文章插圖
C 語言程序設(shè)計(jì)中的“命名規(guī)則” , 指的是為標(biāo)識(shí)符起名字時(shí)遵循的規(guī)則 。標(biāo)識(shí)符主要包括變量名、函數(shù)名和宏名 。
一、常見命名規(guī)則比較著名的命名規(guī)則 , 首推匈牙利命名法 。這種命名方法 , 是由 Microsoft 程序員查爾斯·西蒙尼(Charles Simonyi)提出的 。其主要思想是“在變量和函數(shù)名中加入前綴 , 以增進(jìn)人們對(duì)程序的理解” 。匈牙利命名法關(guān)鍵是:標(biāo)識(shí)符的名字 , 以一個(gè)或多個(gè)小寫字母開頭作為前綴;前綴之后的是首字母大寫的一個(gè)單詞或多個(gè)單詞組合 , 該單詞要指明變量的用途 。例如:lpszStr , 表示指向一個(gè)以‘’結(jié)尾字符串(sz)的長指針(1p)變量 。
駱駝(Camel)命名法 , 是近年來越來越流行使用的一種命名法 。在許多新的函數(shù)庫和 Java 的平臺(tái)下使用得當(dāng)相多 。駱駝命名法 , 正如它的名稱所表示的那樣 , 指的是混合使用大小寫字母來構(gòu)成標(biāo)識(shí)符的名字 。其中第一個(gè)單詞首字母小寫 , 余下的單詞首字母大寫 。例如:printEmployeePaychecks() , 函數(shù)名中每一個(gè)邏輯斷點(diǎn)都有一個(gè)大寫字母來標(biāo)記 。
帕斯卡(Pascal)命名法與駱駝命名法類似 , 只不過駱駝命名法是第一個(gè)單詞首字母小寫 , 而帕斯卡命名法則是第一個(gè)單詞首字母大寫 。例如:DisplayInfo()和 UserName 都是采用了帕斯卡命名法 。
在 C 語言中 , 以帕斯卡命名法和駱駝命名法居多 。事實(shí)上 , 很多程序設(shè)計(jì)者在實(shí)際命名時(shí)會(huì)將駱駝命名法和帕斯卡結(jié)合使用 , 例如變量名采用駱駝命名法 , 而函數(shù)采用帕斯卡命名法 。
另一種流行的命名規(guī)則 , 稱為下劃線命名法 。下劃線法是隨著 C 語言的出現(xiàn)流行起來的 , 在UNIX/LIUNX 這樣的環(huán)境 , 以及 GNU 代碼中使用非常普遍 。本文所述的命名規(guī)則主要基于下劃線命名法發(fā)展而來 。
二、函數(shù)的命名函數(shù)名使用下劃線分割小寫字母的方式命名 , 如:
設(shè)備名_操作名 0
操作名一般采用:謂語(此時(shí)設(shè)備名作為賓語或標(biāo)明操作所屬的模塊)或者謂語+賓語/表語(此時(shí)設(shè)備名作為主語或者標(biāo)明操作所屬的模塊)等形式 , 如:
tic_init()
adc_is_busy()
uart tx char()
中斷函數(shù)的命名直接使用設(shè)備名_isr()的形式命名 , 如:
timer2_isr()
三、變量的命名變量的命名也采用下劃線分割小寫字母的方式命名 。命名應(yīng)當(dāng)準(zhǔn)確 , 不引起歧義 , 且長度適中 。如:
intlength;
uint32test offset;
單字符的名字也是常用的 , 如 i、j、k 等 , 它們通??捎米骱瘮?shù)內(nèi)的局部變量 。
tmp 常用做作時(shí)變量名 。
局部靜態(tài)變量 , 應(yīng)加 s_詞冠(表示 static) , 如:
static int s_lastw;
全局變量(尤其是供外部訪問的全局變量) , 應(yīng)加 g 詞冠(表示 global) , 如:
void (* g_capture_hook)(void);
四、常量及宏的命名采用下劃線分割大寫字母的方式命名 , 一般應(yīng)以設(shè)備名作為前綴 , 防止模塊間命名的重復(fù) 。如:
#define TIMER0_MODE_RELOAD2
#define TIMER2_COUNT_RE-TRIEVE(val) ((uintl 6)(65536_(val)))
當(dāng)然 , 看作接口的宏可以按照函數(shù)的命名方法命名 , 例如:
#define timer2_clearo(TF2=0)
#define timer0 is expiredO (TF0)
五、常用縮寫詞其實(shí) , 沒有一種命名規(guī)則可以讓所有程序員贊同 。而這多種命名規(guī)則也確實(shí)各有利弊 。沒有必要花太多的精力試圖發(fā)明最好的命名規(guī)則 , 而是應(yīng)當(dāng)制定一種令大多數(shù)項(xiàng)目成員滿意的命名規(guī)則并切實(shí)執(zhí)行 。標(biāo)識(shí)符命名的一致性自然會(huì)體現(xiàn)出代碼的優(yōu)雅 。當(dāng)然 , 如果你的程序使用了第三方的代碼 , 而這些模塊經(jīng)驗(yàn)證確實(shí)是正確無誤的 , 那么也沒有必要一味追求命名的一致性 , 而去修改這些已經(jīng)定型的模塊中的函數(shù)和變量名 。
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請(qǐng)您及時(shí)就醫(yī)或請(qǐng)專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助:- c語言取子串函數(shù)講解 php字符串拼接函數(shù)
- cdrx7安裝教程與破解 cdrx7激活碼代碼
- java編程代碼大全 fastjson字符串轉(zhuǎn)對(duì)象報(bào)錯(cuò)
- ps人物轉(zhuǎn)手繪完整教程 ps轉(zhuǎn)插畫系數(shù)新手入門
- arduino編程基礎(chǔ)知識(shí) arduino編程語言入門
- 別讓語言暴力毀了婚姻
- ps摳圖教程新手入門 ps如何摳圖去背景
- 現(xiàn)在最流行語言是那些?
- 新手入門術(shù)語ADC loladc是什么
- java遠(yuǎn)程調(diào)用python腳本講解 java執(zhí)行python代碼
