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

字號:

1.C語言書寫規(guī)范
    1.1符號命名規(guī)則
    1.1.1符號名包括模塊名、常量名、標(biāo)號名、子程序名等。這些名字應(yīng)該能反映它所代表的實際東西,具有一定的意義,使其能夠見名知義,有助于對程序功能的理解。命名采用匈牙利命名法。規(guī)則如下:
    (1)所有宏定義、枚舉常數(shù)和const變量,用大寫字母命名。在復(fù)合詞里用下劃線隔開每個詞。
    (2)復(fù)合詞中每個單詞的第一個字母大寫。除了規(guī)則5.1.1.1以外,避免使用下劃線。
    (3)類、類型定義和枚舉型名的第一個字母大寫。
    (4)函數(shù)名是復(fù)合詞的,第一個詞采用全部小寫,隨后每個單詞采用第一個字母大寫,其它字母小寫方式;如果是單個詞的,采用全部小寫方式。
    (5)循環(huán)變量可采用i, j, k等,不受上述規(guī)則限制。
    (6) 類的成員變量應(yīng)采用m_開頭。
    (7) 全局變量詞頭為g_ 。
    (8) 臨時變量詞頭為tmp_ 。
    (9) 對結(jié)構(gòu)體內(nèi)的變量命名, 遵循變量的具體含義命名原則
    (10)用小寫字母的前綴表示變量的類型,前綴的下一個字母用大寫。
    表 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_開頭*/
    1.1.2名字的長度一般不要過長或過短。過長的名字會增加工作量,使程序邏輯流程變得模糊;過短的名字無法表達(dá)符號的實際意義。約定長度范圍:3-31;