青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Shuffy

不斷的學(xué)習(xí),不斷的思考,才能不斷的進步.Let's do better together!
posts - 102, comments - 43, trackbacks - 0, articles - 19

Visual C++編程命名規(guī)則

Posted on 2007-11-19 12:44 Shuffy 閱讀(720) 評論(0)  編輯 收藏 引用 所屬分類: VC++/C/C++/C#瀏覽集合

[轉(zhuǎn)]http://blog.csdn.net/Greenlander/archive/2007/08/24/1757069.aspx
一、程序風(fēng)格:
    
    1、嚴格采用階梯層次組織程序代碼:    
    各層次縮進的分格采用VC的缺省風(fēng)格,即每層次縮進為4格,括號位于下一行。要求相匹配的大括號在同一列,對繼行則要求再縮進4格。例如:    
    2、提示信息字符串的位置    
    在程序中需要給出的提示字符串,為了支持多種語言的開發(fā),除了一些給調(diào)試用的臨時信息外,其他所有的提示信息必須定義在資源中。    
    3、對變量的定義,盡量位于函數(shù)的開始位置。    

二、命名規(guī)則:    
    1、變量名的命名規(guī)則    
    ①、變量的命名規(guī)則要求用“匈牙利法則”。即開頭字母用變量的類型,其余部分用變量的英文意思或其英文意思的縮寫,盡量避免用中文的拼音,要求單詞的第一個字母應(yīng)大寫。    
    即:     變量名=變量類型+變量的英文意思(或縮寫)    
    對非通用的變量,在定義時加入注釋說明,變量定義盡量可能放在函數(shù)的開始處。    
    見下表:    
    bool(BOOL)     用b開頭     bIsParent    
    byte(BYTE)     用by開頭     byFlag    
    short(int)     用n開頭     nStepCount    
    long(LONG)     用l開頭     lSum    
    char(CHAR)     用c開頭     cCount    
    float(FLOAT)     用f開頭     fAvg    
    double(DOUBLE)     用d開頭     dDeta    
    void(VOID)     用v開頭     vVariant    
    unsigned     int(WORD)     用w開頭     wCount    
    unsigned     long(DWORD)     用dw開頭     dwBroad    
    HANDLE(HINSTANCE)     用h開頭     hHandle    
    DWORD     用dw開頭     dwWord    
    LPCSTR(LPCTSTR)     用str開頭     strString    
    用0結(jié)尾的字符串     用sz開頭     szFileName
    
   
    對未給出的變量類型要求提出并給出命名建議給技術(shù)委員會。    
   
    ②、指針變量命名的基本原則為:    
    對一重指針變量的基本原則為:    
    “p”+變量類型前綴+命名    
    如一個float*型應(yīng)該表示為pfStat    
    對多重指針變量的基本規(guī)則為:    
    二重指針:     “pp”+變量類型前綴+命名    
    三重指針:     “ppp”+變量類型前綴+命名    
    ......    
    ③、全局變量用g_開頭,如一個全局的長型變量定義為g_lFailCount,即:變量名=g_+變量類型+變量的英文意思(或縮寫)    
    ④、靜態(tài)變量用s_開頭,如一個靜態(tài)的指針變量定義為s_plPerv_Inst,即:     變量名=s_+變量類型+變量的英文意思(或縮寫)    
    ⑤、成員變量用m_開頭,如一個長型成員變量定義為m_lCount;即:變量名=m_+變量類型+變量的英文意思(或縮寫)    
    ⑥、對枚舉類型(enum)中的變量,要求用枚舉變量或其縮寫做前綴。并且要求用大寫。    
    如:enum     cmEMDAYS    
    {    
    EMDAYS_MONDAY;    
    EMDAYS_TUESDAY;    
    ……    
    };
    
    ⑦、對struct、union、class變量的命名要求定義的類型用大寫。并要加上前綴,其內(nèi)部變量的命名規(guī)則與變量命名規(guī)則一致。    
    結(jié)構(gòu)一般用S開頭    
    如:struct     ScmNPoint    
    {    
    int     nX;//點的X位置    
    int     nY;     //點的Y位置    
    };
    
    聯(lián)合體一般用U開頭    
    如:     union     UcmLPoint    
    {    
    long     lX;    
    long     lY;    
    }  
  
    類一般用C開頭    
    如:    
    class     CcmFPoint    
    {    
    public:    
    float     fPoint;    
    };    
    對一般的結(jié)構(gòu)應(yīng)該定義為類模板,為以后的擴展性考慮    
    如:    
    template    
    class     CcmTVector3d    
    {    
    public:    
    TYPE     x,y,z;    
    };    
    ⑧、對常量(包括錯誤的編碼)命名,要求常量名用大寫,常量名用英文表達其意思。    
    如:#define     CM_FILE_NOT_FOUND     CMMAKEHR(0X20B)     其中CM表示類別。    
    ⑨、對const     的變量要求在變量的命名規(guī)則前加入c_,即:c_+變量命名規(guī)則;例如:    
    const     char*     c_szFileName;    
    2、     函數(shù)的命名規(guī)范:    
    函數(shù)的命名應(yīng)該盡量用英文表達出函數(shù)完成的功能。遵循動賓結(jié)構(gòu)的命名法則,函數(shù)名中動詞在前,并在命名前加入函數(shù)的前綴,函數(shù)名的長度不得少于8個字母。    
    例如:    
    long     cmGetDeviceCount(……);    
    3、函數(shù)參數(shù)規(guī)范:    
    ①、     參數(shù)名稱的命名參照變量命名規(guī)范。    
    ②、     為了提高程序的運行效率,減少參數(shù)占用的堆棧,傳遞大結(jié)構(gòu)的參數(shù),一律采用指針或引用方式傳遞。    
    ③、     為了便于其他程序員識別某個指針參數(shù)是入口參數(shù)還是出口參數(shù),同時便于編譯器檢查錯誤,應(yīng)該在入口參數(shù)前加入const標志。如:    
    ……cmCopyString(const     char     *     c_szSource,     char     *     szDest)    
    4、引出函數(shù)規(guī)范:    
    對于從動態(tài)庫引出作為二次開發(fā)函數(shù)公開的函數(shù),為了能與其他函數(shù)以及Windows的函數(shù)區(qū)分,采用類別前綴+基本命名規(guī)則的方法命名。例如:在對動態(tài)庫中引出的一個圖象編輯的函數(shù)定義為     imgFunctionname(其中img為image縮寫)。    
    現(xiàn)給出三種庫的命名前綴:    
    ①、     對通用函數(shù)庫,采用cm為前綴。    
    ②、     對三維函數(shù)庫,采用vr為前綴。    
    ③、     對圖象函數(shù)庫,采用img為前綴。
    
    對宏定義,結(jié)果代碼用同樣的前綴。    
    5、文件名(包括動態(tài)庫、組件、控件、工程文件等)的命名規(guī)范:    
    文件名的命名要求表達出文件的內(nèi)容,要求文件名的長度不得少于5個字母,嚴禁使用象file1,myfile之類的文件名。    

三、注釋規(guī)范:    
    1、函數(shù)頭的注釋    
    對于函數(shù),應(yīng)該從“功能”,“參數(shù)”,“返回值”、“主要思路”、“調(diào)用方法”、“日期”六個方面用如下格式注釋:    
    //程序說明開始    
    //================================================================//    
    //     功能:     從一個String     中刪除另一個String。    
    //     參數(shù):     strByDelete,strToDelete    
    //     (入口)     strByDelete:     被刪除的字符串(原來的字符串)    
    //     (出口)     strToDelete:     要從上個字符串中刪除的字符串。    
    //     返回:     找到并刪除返回1,否則返回0。(對返回值有錯誤編碼的要//     求列出錯誤編碼)。    
    //     主要思路:本算法主要采用循環(huán)比較的方法來從strByDelete中找到    
    //     與strToDelete相匹配的字符串,對多匹配strByDelete    
    //     中有多個strToDelete子串)的情況沒有處理。請參閱:    
    //     書名......    
    //     調(diào)用方法:......    
    //     日期:起始日期,如:2000/8/21.9:40--2000/8/23.21:45    
    //================================================================//    
    函數(shù)名(……)    
    //程序說明結(jié)束    
    ①、     對于某些函數(shù),其部分參數(shù)為傳入值,而部分參數(shù)為傳出值,所以對參數(shù)要詳細說明該參數(shù)是入口參數(shù),還是出口參數(shù),對于某些意義不明確的參數(shù)還要做詳細說明(例如:以角度作為參數(shù)時,要說明該角度參數(shù)是以弧度(PI),還是以度為單位),對既是入口又是出口的變量應(yīng)該在入口和出口處同時標明。等等。    
    ②、     函數(shù)的注釋應(yīng)該放置在函數(shù)的頭文件中,在實現(xiàn)文件中的該函數(shù)的實現(xiàn)部分應(yīng)該同時放置該注釋。    
    ③、     在注釋中應(yīng)該詳細說明函數(shù)的主要實現(xiàn)思路、特別要注明自己的一些想法,如果有必要則應(yīng)該寫明對想法產(chǎn)生的來由。對一些模仿的函數(shù)應(yīng)該注釋上函數(shù)的出處。    
    ④、     在注釋中詳細注明函數(shù)的適當(dāng)調(diào)用方法,對于返回值的處理方法等。在注釋中要強調(diào)調(diào)用時的危險方面,可能出錯的地方。    
    ⑤、     對日期的注釋要求記錄從開始寫函數(shù)到結(jié)束函數(shù)的測試之間的日期。    
    ⑥、     對函數(shù)注釋開始到函數(shù)命名之間應(yīng)該有一組用來標識的特殊字符串。    
    如果算法比較復(fù)雜,或算法中的變量定義與位置有關(guān),則要求對變量的定義進行圖解。對難以理解的算法能圖解盡量圖解。    
    2、變量的注釋:    
    對于變量的注釋緊跟在變量的后面說明變量的作用。原則上對于每個變量應(yīng)該注釋,但對于意義非常明顯的變量,如:i,j等循環(huán)變量可以不注釋。    
    例如:     long     lLineCount     //線的根數(shù)。    
     3、文件的注釋:    
    文件應(yīng)該在文件開頭加入以下注釋:    
    /////////////////////////////////////////////////////////////////////    
    //     工程:     文件所在的項目名。    
    //     作者:**,修改者:**    
    //     描述:說明文件的功能。    
    //     主要函數(shù):…………    
    //     版本:     說明文件的版本,完成日期。    
    //     修改:     說明對文件的修改內(nèi)容、修改原因以及修改日期。    
    //     參考文獻:     ......    
    /////////////////////////////////////////////////////////////////////    
    為了頭文件被重復(fù)包含要求對頭文件進行定義如下:    
    #ifndef     __FILENAME_H__    
    #define     __FILENAME_H__
    
    其中FILENAME為頭文件的名字。    
       4、其他注釋:    
    在函數(shù)內(nèi)我們不需要注釋每一行語句。但必須在各功能模塊的每一主要部分之前添加塊注釋,注釋每一組語句,在循環(huán)、流程的各分支等,盡可能多加以注釋。    
    其中的循環(huán)、條件、選擇等位置必須注釋。    
    對于前后順序不能顛倒的情況,建議在注釋中增加序號。    
    例如:    
    在其他順序執(zhí)行的程序中,每隔3—5行語句,必須加一個注釋,注明這一段語句所組成的小模塊的作用。對于自己的一些比較獨特的思想要求在注釋中標明。    

四、程序健壯性:    
    1、函數(shù)的返回值規(guī)范:    
    對于函數(shù)的返回位置,盡量保持單一性,即一個函數(shù)盡量做到只有一個返回位置。(單入口單出口)。    
    要求大家統(tǒng)一函數(shù)的返回值,所有的函數(shù)的返回值都將以編碼的方式返回。    
    例如編碼定義如下:    
    #define     CM_POINT_IS_NULL     CMMAKEHR(0X200)    
    :    
    :    
    建議函數(shù)實現(xiàn)如下:    
    long     函數(shù)名(參數(shù),……)    
    {    
    long     lResult;     //保持錯誤號    
    lResult=CM_OK;
    
    //如果參數(shù)有錯誤則返回錯誤號    
    if(參數(shù)==NULL)    
    {    
    lResult=CM_POINT_IS_NULL;    
    goto     END;    
    }    
    ……    
    END:    
    return     lResult;    
    }
    
    2、關(guān)于goto的應(yīng)用:    
    對goto語句的應(yīng)用,我們要求盡量少用goto語句。對一定要用的地方要求只能向后轉(zhuǎn)移。    
    3、資源變量的處理(資源變量是指消耗系統(tǒng)資源的變量):    
    對資源變量一定賦初值。分配的資源在用完后必須馬上釋放,并重新賦值。    
    4、對復(fù)雜的條件判斷,為了程序的可讀性,應(yīng)該盡量使用括號。    
    例:if(((szFileName!=NULL)&&(lCount>=0)))||(bIsRead==TRUE))    
 
五、可移植性:    
    1、高質(zhì)量的代碼要求能夠跨平臺,所以我們的代碼應(yīng)該考慮到對不同的平臺的支持,特別是對windows98和windowsnt的支持。    
    2、由于C語言的移植性比較好,所以對算法函數(shù)要求用C代碼,不能用C++代碼。    
    3、對不同的硬件與軟件的函數(shù)要做不同的處理

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美国产高清| 国产精品综合视频| 免费视频久久| 久久视频在线视频| 欧美伊人久久大香线蕉综合69| av成人免费在线| 一区二区三区免费在线观看| 亚洲每日更新| 在线视频精品一区| 在线亚洲免费| 亚洲欧美中文在线视频| 西瓜成人精品人成网站| 欧美一区二区三区视频免费播放| 欧美在线视频免费观看| 久久久久久夜| 亚洲精品乱码久久久久久黑人| 美国十次了思思久久精品导航| 亚洲国产精品成人va在线观看| 亚洲精品欧美精品| 亚洲一区二区三区精品在线观看| 亚洲制服丝袜在线| 久久手机精品视频| 欧美日韩国产系列| 国产日韩欧美一区二区三区在线观看| 国产亚洲一级| 99热免费精品| 久久精品国产亚洲一区二区| 欧美成人午夜激情视频| 一区二区三区毛片| 久久久天天操| 欧美午夜精品一区| 海角社区69精品视频| 亚洲美女av网站| 久久精品国产69国产精品亚洲| 欧美+亚洲+精品+三区| 一区二区免费看| 另类激情亚洲| 国产日韩在线看| 免费成人av在线| 国产精品入口麻豆原神| 亚洲国内欧美| 久久久精品日韩| 一区二区不卡在线视频 午夜欧美不卡'| 性欧美在线看片a免费观看| 欧美电影电视剧在线观看| 国产欧美一区二区三区另类精品| 亚洲精品久久久久久下一站 | 欧美色另类天堂2015| 国产亚洲一级高清| 亚洲欧美资源在线| 亚洲精品国产品国语在线app| 久久久999精品免费| 麻豆久久久9性大片| 国产午夜精品全部视频在线播放| 亚洲一级片在线看| 亚洲激情亚洲| 欧美www视频在线观看| 激情综合色综合久久| 性久久久久久| 亚洲私拍自拍| 欧美视频一区二区在线观看| 一本色道久久88亚洲综合88| 欧美激情精品久久久久久免费印度| 欧美在线看片a免费观看| 国产免费观看久久| 久久精品国产69国产精品亚洲| 亚洲欧美经典视频| 国产欧美韩日| 久久精品99| 午夜亚洲性色视频| 好男人免费精品视频| 欧美在线视频观看免费网站| 亚洲欧美综合精品久久成人| 国产日产欧美a一级在线| 亚洲一区在线直播| 午夜精品视频一区| 国产一区二区三区四区在线观看| 久久精品视频免费| 久久人体大胆视频| 亚洲精品视频在线播放| 亚洲毛片网站| 国产欧美精品日韩| 鲁大师成人一区二区三区| 另类专区欧美制服同性| 亚洲精品1区2区| 99在线精品免费视频九九视| 欧美午夜电影在线| 久久精精品视频| 免费观看成人www动漫视频| 洋洋av久久久久久久一区| 亚洲视频二区| 影音先锋成人资源站| 亚洲第一狼人社区| 国产精品国产三级欧美二区 | 91久久香蕉国产日韩欧美9色| 欧美日韩国产黄| 久久国产精品色婷婷| 美腿丝袜亚洲色图| 亚洲综合视频网| 久久亚洲综合色| 亚洲一区二区3| 久久精品国产免费看久久精品| 亚洲精品国产欧美| 亚洲尤物视频网| 亚洲国产精品嫩草影院| 在线亚洲成人| 亚洲茄子视频| 欧美在线一二三| 一区二区三区日韩欧美精品| 午夜欧美大片免费观看| 亚洲全黄一级网站| 亚洲女性裸体视频| 99人久久精品视频最新地址| 欧美一区二区三区日韩| 一区二区日韩| 欧美成人精品在线播放| 欧美一区二区视频观看视频| 欧美大香线蕉线伊人久久国产精品| 日韩视频在线永久播放| 欧美国产乱视频| 久久国产精品毛片| 欧美日本一区| 免费日韩视频| 国产欧美综合在线| 9i看片成人免费高清| 亚洲国产毛片完整版 | 亚洲精品视频一区| 亚洲高清一区二区三区| 欧美一区二区三区视频免费| 亚洲在线网站| 国产精品va在线| 欧美三级乱码| 久久视频在线视频| 欧美一区二区视频网站| 欧美日本不卡高清| 91久久精品美女高潮| 最新国产乱人伦偷精品免费网站| 欧美在线一级视频| 久久男人av资源网站| 狠狠v欧美v日韩v亚洲ⅴ| 欧美一区二区三区啪啪| 久久久久免费观看| 狠狠色狠色综合曰曰| 久久九九久久九九| 免费日韩av| 日韩午夜一区| 欧美色123| 亚洲一区二区三区国产| 性色av一区二区怡红| 91久久精品视频| 久久蜜桃资源一区二区老牛| 亚洲一卡久久| 久久综合导航| 久久久久国产精品一区三寸| 亚洲男人影院| 欧美精品久久久久久久免费观看 | 午夜精品美女自拍福到在线| 欧美午夜无遮挡| 亚洲黑丝在线| 亚洲国产精品一区二区久| 久久先锋影音| 亚洲国产日韩在线一区模特| 91久久中文字幕| 欧美国产日韩一区| 久久久久久久91| 亚洲欧美色婷婷| 国产精品草莓在线免费观看| 亚洲一区免费网站| 久久高清福利视频| 国产在线欧美日韩| 久久久久久久999| 奶水喷射视频一区| 亚洲欧洲综合| 欧美日韩高清在线观看| 一区二区不卡在线视频 午夜欧美不卡' | 亚洲欧美日韩国产综合| 午夜精品亚洲一区二区三区嫩草| 国产精品福利在线观看| 久久久久久伊人| 亚洲激情视频| 亚洲免费在线观看| 国产综合精品一区| 精品白丝av| 免费在线成人| 亚洲精品免费在线播放| 欧美精品免费在线| 99精品欧美一区二区三区综合在线 | 亚洲国产精品视频| 欧美啪啪成人vr| 中文欧美日韩| 美乳少妇欧美精品| 精品成人一区二区三区| 欧美四级在线| 久久偷窥视频| 一本色道久久综合亚洲二区三区| 亚洲最黄网站| 亚洲精选一区二区| 国产欧美三级| 欧美精品福利视频| 中文亚洲视频在线|