C語(yǔ)言的代碼規(guī)范探討

字號(hào):

1.C語(yǔ)言書(shū)寫規(guī)范
    1.1符號(hào)命名規(guī)則
    1.1.1符號(hào)名包括模塊名、常量名、標(biāo)號(hào)名、子程序名等。這些名字應(yīng)該能反映它所代表的實(shí)際東西,具有一定的意義,使其能夠見(jiàn)名知義,有助于對(duì)程序功能的理解。命名采用匈牙利命名法。規(guī)則如下:
    (1)所有宏定義、枚舉常數(shù)和const變量,用大寫字母命名。在復(fù)合詞里用下劃線隔開(kāi)每個(gè)詞。
    (2)復(fù)合詞中每個(gè)單詞的第一個(gè)字母大寫。除了規(guī)則5.1.1.1以外,避免使用下劃線。
    (3)類、類型定義和枚舉型名的第一個(gè)字母大寫。
    (4)函數(shù)名是復(fù)合詞的,第一個(gè)詞采用全部小寫,隨后每個(gè)單詞采用第一個(gè)字母大寫,其它字母小寫方式;如果是單個(gè)詞的,采用全部小寫方式。
    (5)循環(huán)變量可采用i, j, k等,不受上述規(guī)則限制。
    (6) 類的成員變量應(yīng)采用m_開(kāi)頭。
    (7) 全局變量詞頭為g_ 。
    (8) 臨時(shí)變量詞頭為tmp_ 。
    (9) 對(duì)結(jié)構(gòu)體內(nèi)的變量命名, 遵循變量的具體含義命名原則
    (10)用小寫字母的前綴表示變量的類型,前綴的下一個(gè)字母用大寫。
    表 1
    詞 頭 類 型 詞 頭 類 型
    ch char l long
    i integer u unsigned
    b boolean p pointer
    f float lp long pointer
    d double s string
    st structure sz ASCII string
    by byte n short int
    H handle x,y 分別為x,y坐標(biāo)
    dw DWORD fn function
    表 2
    詞 頭 變 量 名 詞 頭 變 量 名
    task task sig signal
    sb binary semaphores wd watchdog
    sm mutual exclusion
    semaphores tm timer
    sc counting semaphores msg message
    pipe pipe
    例:
    #define ARRAY_SIZE 24 /*規(guī)則5.1.1.1*/
    int g_iFlag;
    class MyClass /*規(guī)則5.1.1.3*/
    {
    };
    void someFunc( ) /*規(guī)則5.1.1.2和5.1.1.4*/
    {
    .2.
    Q/ECC/BJ 010—2001
    int nArray[ARRAY_SIZE];
    unsigned char uchByte;
    char szName[ ];
    char *pszName = szName;
    }
    (11)有些詞頭(如p和u)可以和其它詞頭組合。
    例:WDOG_ID wdId;
    WDOG_ID g_wdId; /*全局watchdog Id,故以g_開(kāi)頭*/
    1.1.2名字的長(zhǎng)度一般不要過(guò)長(zhǎng)或過(guò)短。過(guò)長(zhǎng)的名字會(huì)增加工作量,使程序邏輯流程變得模糊;過(guò)短的名字無(wú)法表達(dá)符號(hào)的實(shí)際意義。約定長(zhǎng)度范圍:3-31;