1.C語言書寫規(guī)范
1.1符號命名規(guī)則
1.1.1符號名包括模塊名、常量名、標號名、子程序名等。這些名字應(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坐標
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名字的長度一般不要過長或過短。過長的名字會增加工作量,使程序邏輯流程變得模糊;過短的名字無法表達符號的實際意義。約定長度范圍:3-31;
1.1符號命名規(guī)則
1.1.1符號名包括模塊名、常量名、標號名、子程序名等。這些名字應(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坐標
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名字的長度一般不要過長或過短。過長的名字會增加工作量,使程序邏輯流程變得模糊;過短的名字無法表達符號的實際意義。約定長度范圍:3-31;