您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關C語言中有哪些命名規則,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
比較著名的命名規則,首推匈牙利命名法。這種命名方法,是由Microsoft程序員查爾斯·西蒙尼(CharlesSimonyi)提出的。其主要思想是“在變量和函數名中加入前綴,以增進人們對程序的理解”。匈牙利命名法關鍵是:標識符的名字,以一個或多個小寫字母開頭作為前綴;前綴之后的是首字母大寫的一個單詞或多個單詞組合,該單詞要指明變量的用途。例如:lpszStr,表示指向一個以‘\0’結尾字符串(sz)的長指針(1p)變量。
駱駝(Camel)命名法,是近年來越來越流行使用的一種命名法。在許多新的函數庫和Java的平臺下使用得當相多。駱駝命名法,正如它的名稱所表示的那樣,指的是混合使用大小寫字母來構成標識符的名字。其中第一個單詞首字母小寫,余下的單詞首字母大寫。例如:printEmployeePaychecks(),函數名中每一個邏輯斷點都有一個大寫字母來標記。
帕斯卡(Pascal)命名法與駱駝命名法類似,只不過駱駝命名法是第一個單詞首字母小寫,而帕斯卡命名法則是第一個單詞首字母大寫。例如:DisplayInfo()和UserName都是采用了帕斯卡命名法。
在C語言中,以帕斯卡命名法和駱駝命名法居多。事實上,很多程序設計者在實際命名時會將駱駝命名法和帕斯卡結合使用,例如變量名采用駱駝命名法,而函數采用帕斯卡命名法。
另一種流行的命名規則,稱為下劃線命名法。下劃線法是隨著C語言的出現流行起來的,在UNIX/LIUNX這樣的環境,以及GNU代碼中使用非常普遍。本文所述的命名規則主要基于下劃線命名法發展而來。
函數名使用下劃線分割小寫字母的方式命名,如:
設備名_操作名0
操作名一般采用:謂語(此時設備名作為賓語或標明操作所屬的模塊)或者謂語賓語/表語(此時設備名作為主語或者標明操作所屬的模塊)等形式,如:
tic_init()
adc_is_busy()
uarttxchar()
中斷函數的命名直接使用設備名_isr()的形式命名,如:
timer2_isr()
變量的命名也采用下劃線分割小寫字母的方式命名。命名應當準確,不引起歧義,且長度適中。如:
intlength;
uint32testoffset;
單字符的名字也是常用的,如i、j、k等,它們通常可用作函數內的局部變量。
t01384f9202887f15b8.jpg?size=540x252大圖模式
tmp常用做作時變量名。
局部靜態變量,應加s_詞冠(表示static),如:
staticints_lastw;
全局變量(尤其是供外部訪問的全局變量),應加g詞冠(表示global),如:
void(*g_capture_hook)(void);
采用下劃線分割大寫字母的方式命名,一般應以設備名作為前綴,防止模塊間命名的重復。如:
#defineTIMER0_MODE_RELOAD2
#defineTIMER2_COUNT_RE-TRIEVE(val)((uintl6)(65536_(val)))
當然,看作接口的宏可以按照函數的命名方法命名,例如:
#definetimer2_clearo(TF2=0)
#definetimer0isexpiredO(TF0)
其實,沒有一種命名規則可以讓所有程序員贊同。而這多種命名規則也確實各有利弊。沒有必要花太多的精力試圖發明最好的命名規則,而是應當制定一種令大多數項目成員滿意的命名規則并切實執行。標識符命名的一致性自然會體現出代碼的優雅。當然,如果你的程序使用了第三方的代碼,而這些模塊經驗證確實是正確無誤的,那么也沒有必要一味追求命名的一致性,而去修改這些已經定型的模塊中的函數和變量名。
以上就是C語言中有哪些命名規則,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。