溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C語言中有哪些命名規(guī)則

發(fā)布時(shí)間:2021-07-07 14:51:06 來源:億速云 閱讀:188 作者:Leah 欄目:編程語言

本篇文章給大家分享的是有關(guān)C語言中有哪些命名規(guī)則,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

一、常見命名規(guī)則

  比較著名的命名規(guī)則,首推匈牙利命名法。這種命名方法,是由Microsoft程序員查爾斯·西蒙尼(CharlesSimonyi)提出的。其主要思想是“在變量和函數(shù)名中加入前綴,以增進(jìn)人們對(duì)程序的理解”。匈牙利命名法關(guān)鍵是:標(biāo)識(shí)符的名字,以一個(gè)或多個(gè)小寫字母開頭作為前綴;前綴之后的是首字母大寫的一個(gè)單詞或多個(gè)單詞組合,該單詞要指明變量的用途。例如:lpszStr,表示指向一個(gè)以‘\0’結(jié)尾字符串(sz)的長(zhǎng)指針(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()

  uarttxchar()

  中斷函數(shù)的命名直接使用設(shè)備名_isr()的形式命名,如:

  timer2_isr()

三、變量的命名

  變量的命名也采用下劃線分割小寫字母的方式命名。命名應(yīng)當(dāng)準(zhǔn)確,不引起歧義,且長(zhǎng)度適中。如:

  intlength;

  uint32testoffset;

  單字符的名字也是常用的,如i、j、k等,它們通常可用作函數(shù)內(nèi)的局部變量。

  t01384f9202887f15b8.jpg?size=540x252大圖模式

  tmp常用做作時(shí)變量名。

  局部靜態(tài)變量,應(yīng)加s_詞冠(表示static),如:

  staticints_lastw;

  全局變量(尤其是供外部訪問的全局變量),應(yīng)加g詞冠(表示global),如:

  void(*g_capture_hook)(void);

四、常量及宏的命名

  采用下劃線分割大寫字母的方式命名,一般應(yīng)以設(shè)備名作為前綴,防止模塊間命名的重復(fù)。如:

  #defineTIMER0_MODE_RELOAD2

  #defineTIMER2_COUNT_RE-TRIEVE(val)((uintl6)(65536_(val)))

  當(dāng)然,看作接口的宏可以按照函數(shù)的命名方法命名,例如:

  #definetimer2_clearo(TF2=0)

  #definetimer0isexpiredO(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ù)和變量名。

以上就是C語言中有哪些命名規(guī)則,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI