C語言變量名命名規則
一、程序風格:???????? 1、嚴格采用階梯層次組織程序代碼:???????? 各層次縮進的分格采用VC的缺省風格,即每層次縮進為4格,括號位于下一行。??? 要求相匹配的大括號在同一列,對繼行則要求再縮進4格。例如:???????? 2、提示信息字符串的位置???????? 在程序中需要給出的提示字符串,為了支持多種語言的開發,除了一些給調試用的臨時信息外,其他所有的提示信息必須定義在資源中。???????? 3、對變量的定義,盡量位于函數的開始位置。?????
二、命名規則:???????? 1、變量名的命名規則???????? ①、變量的命名規則要求用“匈牙利法則”。即開頭字母用變量的類型,其余部分用變量的英文意思或其英文意思的縮寫,盡量避免用中文的拼音,要求單詞的第一個字母應大寫。???????? 即:???? 變量名=變量類型+變量的英文意思(或縮寫)???????? 對非通用的變量,在定義時加入注釋說明,變量定義盡量可能放在函數的開始處。???????? 見下表:????????
前綴實例備注位域bitbitRXEN寄存器控制接收使能的位BoolbbTurnOn Unsigned CharucucError CharccName Unsigned ShortwwMsg ShortnnCnt Unsigned IntuuiLen IntiiVal Unsigned LongululMaxTh LonglLOffset Long IntliliCount Long LongllllSum FloatffAngle DoubleddRadius EnumeeType p_p_iVal pp_pp_iVal a_a_chDispName[] aa_aa_chPrtName[][] fnvoid fnProc(void)申明函數類型,該函數形參和返回值均為void函數指針pfnpfnFlashWrite保存函數入口地址的指針變量回調函數指針lpfnlpfnAbort系統終止時調用該函數結構體ststTimeNode“時間節點”的結構體局部變量l_l_iCount僅供本例程調用的變量靜態變量s_s_pQData僅供本模塊調用的“隊列緩沖區”的指針全局變量g_g_pSemBtn供多個模塊調用的 “按鈕信號量”的指針模塊中函數命名規則:
模塊名_ + 函數名(動名結構),如:
tmr_GetCurTime() // 時鐘模塊中,獲取當前時間的函數
sport_TxData() // SPORT驅動模塊中,發送數據的函數
??????? 對未給出的變量類型要求提出并給出命名建議給技術委員會。???????????? ②、指針變量命名的基本原則為:???????? 對一重指針變量的基本原則為:???????? “p”+變量類型前綴+命名???????? 如一個float*型應該表示為pfStat???????? 對多重指針變量的基本規則為:???????? 二重指針:???? “pp”+變量類型前綴+命名???????? 三重指針:???? “ppp”+變量類型前綴+命名???????? ......???????? ③、全局變量用g_開頭,如一個全局的長型變量定義為g_lFailCount,即:變量名=g_+變量類型+變量的英文意思(或縮寫)???????? ④、靜態變量用s_開頭,如一個靜態的指針變量定義為s_plPerv_Inst,即:???? 變量名=s_+變量類型+變量的英文意思(或縮寫)???????? ⑤、成員變量用m_開頭,如一個長型成員變量定義為m_lCount;即:變量名=m_+變量類型+變量的英文意思(或縮寫)???????? ⑥、對枚舉類型(enum)中的變量,要求用枚舉變量或其縮寫做前綴。并且要求用大寫。???????? 如:enum???? cmEMDAYS???????? {???????? EMDAYS_MONDAY;???????? EMDAYS_TUESDAY;???????? ……???????? };???????? ⑦、對struct、union、class變量的命名要求定義的類型用大寫。并要加上前綴,其內部變量的命名規則與變量命名規則一致。???????? 結構一般用S開頭???????? 如:struct???? S