新聞中心

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

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

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

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

        本文引用地址:http://www.104case.com/article/202404/457443.htm

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

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

        匈牙利命名法

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

        匈牙利命名法通過(guò)在變量名前面加上相應(yīng)的小寫字母的符號(hào)標(biāo)識(shí)作為前綴,標(biāo)識(shí)出變量的作用域、類型等。

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

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

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

        例如:bEnable, nLength, hWnd。

        640-2.png

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

        屬性部分:

        g_ 全局變量

        c_  常量

        m_  c++類成員變量

        s_  靜態(tài)變量


        類型部分:

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


        描述部分

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


        駝峰命名法

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

        例如:printEmployeePaychecks();

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

        帕斯卡命名法

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

        例如:DisplayInfo(); UserName

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

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

        下劃線命名法

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

        1.函數(shù)的命名

        函數(shù)名使用下劃線分割小寫字母的方式命名:

        設(shè)備名_操作名();

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

        tic_init(); 

        adc_is_busy(); 

        uart_tx_char();

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

        timer2_isr();

        2.變量的命名

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

        int length; 

        uint32 test_offset;

        單字符的名字也是常用的,如i, j, k等,它們通??捎米骱瘮?shù)內(nèi)的局部變量。tmp常用做臨時(shí)變量名。

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

        static int s_lastw;

        全局變量(尤其是供外部訪問(wèn)的全局變量),應(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ù)考察,沒(méi)有一種命名規(guī)則可以讓所有的程序員贊同,程序設(shè)計(jì)教科書一般都不指定命名規(guī)則。

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

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



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

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 砀山县| 洪江市| 富蕴县| 德昌县| 汽车| 合江县| 海兴县| 丹巴县| 江华| 牡丹江市| 尤溪县| 深水埗区| 龙山县| 禹州市| 保康县| 奉节县| 仙桃市| 崇州市| 徐闻县| 桑植县| 龙井市| 新沂市| 徐汇区| 万盛区| 佛山市| 宽甸| 绵竹市| 云梦县| 城固县| 应城市| 平乡县| 濉溪县| 资阳市| 平安县| 肇庆市| 兴文县| 西乌| 北辰区| 固阳县| 定南县| 英山县|