<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 設計應用 > 軟件代碼幾種常見(jiàn)命名規則

軟件代碼幾種常見(jiàn)命名規則

作者: 時(shí)間:2024-04-11 來(lái)源: 收藏

良好的習慣,決定了今后的質(zhì)量。

本文引用地址:http://dyxdggzs.com/article/202404/457443.htm

很多不注重平時(shí)編碼習慣,比如命名規則,一會(huì )大寫(xiě)、一會(huì )小寫(xiě),一會(huì )中文拼音,一會(huì )下劃線(xiàn)等,導致自己寫(xiě)的自己都看不懂了。

今天就來(lái)分享一點(diǎn)關(guān)于常見(jiàn)的幾種命名規則。

匈牙利命名法

匈牙利命名法廣泛應用于微軟 Windows 這類(lèi)環(huán)境中,這種命名技術(shù)是由微軟早期的一位能干的 Microsoft 程序員查爾斯·西蒙尼(Charles Simonyi) 提出的。

匈牙利命名法通過(guò)在變量名前面加上相應的小寫(xiě)字母的符號標識作為前綴,標識出變量的作用域、類(lèi)型等。

這些符號可以多個(gè)同時(shí)使用,順序是先m_(成員變量),再指針,再簡(jiǎn)單數據類(lèi)型,再其他。

例如:m_lpszStr, 表示指向一個(gè)以0字符結尾的字符串的長(cháng)指針成員變量。

匈牙利命名法關(guān)鍵是:標識符的名字以一個(gè)或者多個(gè)小寫(xiě)字母開(kāi)頭作為前綴,前綴之后的是首字母大寫(xiě)的一個(gè)單詞或多個(gè)單詞組合,該單詞要指明變量的用途。

例如:bEnable, nLength, hWnd。

640-2.png

下面分享關(guān)于匈牙利命名法中常用的小寫(xiě)字母的前綴。

屬性部分:

g_ 全局變量

c_  常量

m_  c++類(lèi)成員變量

s_  靜態(tài)變量


類(lèi)型部分:

數組 a
指針 p
函數 fn
無(wú)效 v
句柄 h
長(cháng)整型 l
布爾 b
浮點(diǎn)型(有時(shí)也指文件) f
雙字  dw
字符串  sz
短整型  n
雙精度浮點(diǎn) d
計數 c(通常用cnt)
字符 ch(通常用c)
整型 i(通常用n)
字節 by
字 w
實(shí)型 r
無(wú)符號 u


描述部分

最大 Max
最小 Min
初始化 Init
臨時(shí)變量 T(或Temp)
源對象 Src
目的對象 Dest


駝峰命名法

駝峰命名法近年來(lái)越來(lái)越流行,駝峰命名法,正如它的名稱(chēng)所表示的那樣,指的是混合使用大小寫(xiě)字母來(lái)構成標識符的名字。其中第一個(gè)單詞首字母小寫(xiě),余下的單詞首字母大寫(xiě)。

例如:printEmployeePaychecks();

函數名中每一個(gè)邏輯斷點(diǎn)都有一個(gè)大寫(xiě)字母來(lái)標記。

帕斯卡命名法

帕斯卡命名法與駝峰命名法類(lèi)似,只不過(guò)駝峰命名法是第一個(gè)單詞首字母小寫(xiě),而帕斯卡命名法則是第一個(gè)單詞首字母大寫(xiě)。因此這種命名法也有人稱(chēng)之為“大駝峰命名法”。

例如:DisplayInfo(); UserName

都是采用了帕斯卡命名法。

事實(shí)上,很多程序設計者在實(shí)際命名時(shí)會(huì )將駝峰命名法和帕斯卡結合使用,例如變量名采用駝峰命名法,而函數采用帕斯卡命名法。

下劃線(xiàn)命名法

下劃線(xiàn)法是隨著(zhù)C語(yǔ)言的出現流行起來(lái)的,在UNIX/LIUNX這樣的環(huán)境,以及GNU代碼中使用非常普遍。

1.函數的命名

函數名使用下劃線(xiàn)分割小寫(xiě)字母的方式命名:

設備名_操作名();

操作名一般采用:謂語(yǔ)(此時(shí)設備名作為賓語(yǔ)或者標明操作所屬的模塊)或者謂語(yǔ) 賓語(yǔ)/表語(yǔ)(此時(shí)設備名作為主語(yǔ)或者標明操作所屬的模塊) 等形式,如:

tic_init(); 

adc_is_busy(); 

uart_tx_char();

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

timer2_isr();

2.變量的命名

變量的命名也采用下劃線(xiàn)分割小寫(xiě)字母的方式命名。命名應當準確,不引起歧義,且長(cháng)度適中。如:

int length; 

uint32 test_offset;

單字符的名字也是常用的,如i, j, k等,它們通??捎米骱瘮祪鹊木植孔兞?。tmp常用做臨時(shí)變量名。

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

static int s_lastw;

全局變量(尤其是供外部訪(fǎng)問(wèn)的全局變量),應加g_詞冠(表示global),如:

void (* g_capture_hook)(void);

3.常量及宏的命名

采用下劃線(xiàn)分割大寫(xiě)字母的方式命名,一般應以設備名作為前綴,防止模塊間命名的重復。如:

#define TIMER0_MODE_RELOAD 2

#define TIMER2_COUNT_RETRIEVE(val) ((uint16)(65536 - (val)))

當然,看作接口的宏可以按照函數的命名方法命名,例如:

#define timer2_clear() (TF2 = 0)

#define timer0_is_expired() (TF0)

據考察,沒(méi)有一種命名規則可以讓所有的程序員贊同,程序設計教科書(shū)一般都不指定命名規則。

命名規則對產(chǎn)品而言并不是“成敗悠關(guān)”的事,我們不要化太多精力試圖發(fā)明世界上最好的命名規則,而應當制定一種令大多數項目成員滿(mǎn)意的命名規則,并在項目中貫徹實(shí)施。

聲明:本文素材來(lái)源網(wǎng)絡(luò ),版權歸原作者所有。如涉及作品版權問(wèn)題,請與我聯(lián)系刪除。



關(guān)鍵詞: 軟件 代碼 編程 工程師

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>