一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

C/C++命名規(guī)范

 木棉下的守望 2014-06-12
  關(guān)于編成規(guī)范-命名規(guī)則的淺談
 
本命名取自“匈牙利”法,僅供參考。
 
數(shù)據(jù)類型的命名規(guī)則參考:
定義類型:
前綴 類型                    類型描述            示例                   占字節(jié)(Win32) 有效值                 取值范圍
b    Boolena-布爾            1Bit的標(biāo)志          bool           bFlag            4    (TRUE/FALSE)           (0x0 ~0x1)
          /* typedef int bool */
-------------------------------------------------------------------------------------
by   Byte 字節(jié)               無符號的8bit字節(jié)    unsigned char  byValue;         1    0   ~255               (0x0 ~0xFF)
ch   Char 字符               有符號的8bit字節(jié)    signed   char  chValue;         1    -128~127               (0x80~0x7F)
-------------------------------------------------------------------------------------
w    不帶符號的Word字        無符號的16bit整數(shù)   unsigned short wValue;          2    0     ~65535           (0x0   ~0xFFFF)
sw   帶符號的16位整形數(shù)      有符號的16bit整數(shù)   signed   short swValue;         2    -32768~32767           (0x8000~0x7FFF)
-------------------------------------------------------------------------------------
dw   不帶符號的doubleword字  無符號的32bit整數(shù)   unsigned int   dwValue;         4    0          ~4294967295  (0x0       ~0xFFFFFFFF)
n    帶符號的32位整形數(shù)      有符號的32bit整數(shù)   signed   int   nValue;          4    -2147483648~2147483647  (0x80000000~0x7FFFFFFF)
-------------------------------------------------------------------------------------
f    單精度浮點(diǎn)數(shù)            單精度浮點(diǎn)數(shù)        float          fValue;          4
d    雙精度浮點(diǎn)數(shù)            雙精度浮點(diǎn)數(shù)        double         dValue;          8
-------------------------------------------------------------------------------------
p    指針(pointer)           指針                char           *pchName;        4
pc   const指針(pointer)      const指針           const char     *pcchName;       /
          /* unsigned char *pbyData; /  unsigned short *pwData;  */
          /* const int *pcnData;     /  unsigned int *pdwData;   */
-------------------------------------------------------------------------------------
t    typedef自定義類型       struct結(jié)構(gòu)體等類型  TNameInfo      tName;           /
pt   自定義類型指針          struct結(jié)構(gòu)體指針等  PTNameInfo     *ptName;         /
-------------------------------------------------------------------------------------
a    Array數(shù)組               數(shù)組                char           achName[20];     /
aa   二位Array數(shù)組           多位數(shù)組            unsigned char  aabyName[4][2];  /
-------------------------------------------------------------------------------------
ap   存放指針的數(shù)組          存放指針的數(shù)組      char           *apchName[2];    /
pa   指向數(shù)組的指針          指向數(shù)組的指針      unsigned char  *pabyName;       /
-------------------------------------------------------------------------------------
em   enum枚舉類型            枚舉類型            EM_NAME        emName;          4
c    class類                 class類             CName          cName;           /
-------------------------------------------------------------------------------------
pf   函數(shù)指針(pointer func)  函數(shù)指針            typedef int (*pfMsgFunc)(int type);
-------------------------------------------------------------------------------------
s_   靜態(tài)變量(static)        靜態(tài)變量            static int     s_nValue;
g_   全局變量(global)        全局變量            int            g_nValue;
m_   類的數(shù)據(jù)成員(member)    類的數(shù)據(jù)成員        int            m_nValue;
 
 
函數(shù)名的命名規(guī)則參考:
 
1. 函數(shù)名的首字母建議大寫,函數(shù)名采用大小寫字母結(jié)合的形式
int GetMaxValue(void)
{
     do someting;
}
 
2. 定義函數(shù)時(shí),若函數(shù)無返回值,請冠以void 函數(shù)名格式;若函數(shù)無參數(shù),請?jiān)趨?shù)中寫入void格式;
void InitData(void)
{
     do someting;
}
 
1. 全局函數(shù)的名字應(yīng)當(dāng)使用“動(dòng)詞”或者“動(dòng)詞+名詞”(動(dòng)賓詞組)。
DrawBox(void); // 全局函數(shù)
 
2. 用正確的反義詞組命名具有互斥意義的變量或相反動(dòng)作的函數(shù)等。
void SetValue(int nValue)
{
     g_nValue = nValue;
}
 
int GetValue(void)
{
     return g_nValue;
}
 
3. 回調(diào)函數(shù)最好出現(xiàn)“CB”字符;
     typedef int (*pfTimerCB)(int type);
     CreateTimer(g_TaskTimer, TaskTimerCB, NULL);
 
3. 在同一軟件產(chǎn)品內(nèi),避免重名的函數(shù)出現(xiàn)
我們在不同的文件中都可以通過定義同樣的函數(shù)
模塊A
static void InitData(void); // 最好改成 static void InitAData(void);
模塊B
static void InitData(void); // 最好改成 static void InitBData(void);
 
4. 函數(shù)名的長度最好小于30字符內(nèi)??梢允褂每s略詞語,但是要有必要的全詞注釋。
tSysPara *GetSysPara(void) // tSystemPara *GetSystemParameter(void)
 
5. 一個(gè)函數(shù)代碼最好控制在100行以內(nèi),一個(gè)模塊文件,代碼最好控制在1000行以內(nèi)。
 
6. 最后,還有一點(diǎn)小小的建議,就是無論我們使用那種工具編寫代碼,VC6.0,SourceInsignt,UltraEdit,等
請按照格式排板,對齊,并將tab轉(zhuǎn)換成4個(gè)空格,這樣便于察看,修改等。
 
 
代碼示例:與零值比較(摘自林銳博士-高質(zhì)量C++/C 編程指南)
 
1. 布爾變量與零值比較
不可將布爾變量直接與TRUE、FALSE 或者1、0 進(jìn)行比較。
根據(jù)布爾類型的語義,零值為“假”(記為FALSE),任何非零值都是“真”(記為TRUE)。TRUE 的值究竟是什么并沒有統(tǒng)一的標(biāo)準(zhǔn)。例如Visual C++ 將TRUE 定義為1,而Visual Basic 則將TRUE 定義為-1。
假設(shè)布爾變量名字為flag,它與零值比較的標(biāo)準(zhǔn)if 語句如下:
     if (flag)  // 表示flag 為真
     if (!flag) // 表示flag 為假
其它的用法都屬于不良風(fēng)格,例如:
     if (TRUE == flag)
     if (1 == flag)
     if (FALSE == flag)
     if (0 == flag)
 
2. 整型變量與零值比較
應(yīng)當(dāng)將整型變量用“==”或“!=”直接與0 比較。
假設(shè)整型變量的名字為value,它與零值比較的標(biāo)準(zhǔn)if 語句如下:
     if (0 == value)
     if (0 != value)
不可模仿布爾變量的風(fēng)格而寫成
     if (value) // 會讓人誤解 value 是布爾變量
     if (!value)
 
3. 浮點(diǎn)變量與零值比較
不可將浮點(diǎn)變量用“==”或“!=”與任何數(shù)字比較。
千萬要留意,無論是float 還是double 類型的變量,都有精度限制。所以一定要避免將浮點(diǎn)變量用“==”或“!=”與數(shù)字比較,應(yīng)該設(shè)法轉(zhuǎn)化成“>=”或“ <=”形式。
假設(shè)浮點(diǎn)變量的名字為x,應(yīng)當(dāng)將
     if (0.0 == x) // 隱含錯(cuò)誤的比較
轉(zhuǎn)化為
     if ((x>=-EPSINON) && (x <=EPSINON))
其中EPSINON 是允許的誤差(即精度)。
C++
const float EPSINON = 0.00001;
C
#define EPSINON   (float)0.00001
 
4. 指針變量與零值比較
應(yīng)當(dāng)將指針變量用“==”或“!=”與NULL 比較。
指針變量的零值是“空”(記為NULL)。盡管NULL 的值與0 相同,但是兩者意義不同。假設(shè)指針變量的名字為p,它與零值比較的標(biāo)準(zhǔn)if 語句如下:
     if (NULL == p) // p 與NULL 顯式比較,強(qiáng)調(diào)p 是指針變量
     if (NULL != p)
不要寫成
     if (0 == p) // 容易讓人誤解p 是整型變量
     if (0 != p)
或者
     if (p) // 容易讓人誤解p 是布爾變量
     if (!p)  

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    日韩成人午夜福利免费视频| 2019年国产最新视频| 亚洲精品美女三级完整版视频| 成年人免费看国产视频| 色综合久久中文综合网| 夜夜嗨激情五月天精品| 黄色av尤物白丝在线播放网址| 日本人妻精品中文字幕不卡乱码| 久久本道综合色狠狠五月| 亚洲日本加勒比在线播放| 午夜激情视频一区二区| 天堂av一区一区一区| 久久这里只有精品中文字幕| 国产欧美韩日一区二区三区| 亚洲国产香蕉视频在线观看| 大香蕉久久精品一区二区字幕| 国产日韩欧美国产欧美日韩 | 日本精品最新字幕视频播放 | 黄色美女日本的美女日人| 欧美激情区一区二区三区| 中文字幕亚洲精品人妻| 中国黄色色片色哟哟哟哟哟哟| 午夜传媒视频免费在线观看| 九九久久精品久久久精品| 亚洲精品中文字幕一二三| 亚洲av熟女国产一区二区三区站 | 久草热视频这里只有精品| 国产精品久久精品国产| 又黄又爽禁片视频在线观看| 精品日韩国产高清毛片| 久久国产亚洲精品赲碰热| 亚洲欧美日本国产不卡| 五月婷婷欧美中文字幕| 最新国产欧美精品91| 在线九月婷婷丁香伊人| 日韩人妻一区中文字幕| 精品女同在线一区二区| 丝袜破了有美女肉体免费观看| 日本成人三级在线播放| 尤物天堂av一区二区| 国产精品免费视频久久|