• <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>

            平凡的天才

            目的是為人類造福
            posts - 20, comments - 41, trackbacks - 0, articles - 6
              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            VC編程規(guī)范

            Posted on 2006-11-24 17:52 平凡的天才 閱讀(2232) 評(píng)論(2)  編輯 收藏 引用
            經(jīng)過(guò)千辛萬(wàn)苦,我終于開(kāi)博客了
            剛來(lái)給個(gè)規(guī)范吧


            VC編程規(guī)范
            1.?基本要求
            1.1?程序結(jié)構(gòu)清析,簡(jiǎn)單易懂,單個(gè)函數(shù)的程序行數(shù)不得超過(guò)100行。
            1.2?打算干什么,要簡(jiǎn)單,直接了當(dāng),代碼精簡(jiǎn),避免垃圾程序。
            1.3?盡量使用標(biāo)準(zhǔn)庫(kù)函數(shù)和公共函數(shù)。
            1.4?不要隨意定義全局變量,盡量使用局部變量。
            1.5?使用括號(hào)以避免二義性。

            2.可讀性要求
            2.1?可讀性第一,效率第二。
            2.2?保持注釋與代碼完全一致。
            2.3?每個(gè)源程序文件,都有文件頭說(shuō)明,說(shuō)明規(guī)格見(jiàn)規(guī)范。
            2.4?每個(gè)函數(shù),都有函數(shù)頭說(shuō)明,說(shuō)明規(guī)格見(jiàn)規(guī)范。
            2.5?主要變量(結(jié)構(gòu)、聯(lián)合、類或?qū)ο螅┒x或引用時(shí),注釋能反映其含義。
            2.7?常量定義(DEFINE)有相應(yīng)說(shuō)明。
            2.8?處理過(guò)程的每個(gè)階段都有相關(guān)注釋說(shuō)明。
            2.9?在典型算法前都有注釋。
            2.10?利用縮進(jìn)來(lái)顯示程序的邏輯結(jié)構(gòu),縮進(jìn)量一致并以Tab鍵為單位,定義Tab為?6個(gè)
            字節(jié)。
            2.11?循環(huán)、分支層次不要超過(guò)五層。
            2.12?注釋可以與語(yǔ)句在同一行,也可以在上行。
            2.13?空行和空白字符也是一種特殊注釋。
            2.14?一目了然的語(yǔ)句不加注釋。
            2.15?注釋的作用范圍可以為:定義、引用、條件分支以及一段代碼。
            2.16?注釋行數(shù)(不包括程序頭和函數(shù)頭說(shuō)明部份)應(yīng)占總行數(shù)的?1/5?到?1/3?。

            3.?結(jié)構(gòu)化要求
            3.1?禁止出現(xiàn)兩條等價(jià)的支路。
            3.2?禁止GOTO語(yǔ)句。
            3.3?用?IF?語(yǔ)句來(lái)強(qiáng)調(diào)只執(zhí)行兩組語(yǔ)句中的一組。禁止?ELSE?GOTO?和?ELSE?RETURN。
            3.4?用?CASE?實(shí)現(xiàn)多路分支。
            3.5?避免從循環(huán)引出多個(gè)出口。
            3.6?函數(shù)只有一個(gè)出口。
            3.7?不使用條件賦值語(yǔ)句。
            3.8?避免不必要的分支。
            3.9?不要輕易用條件分支去替換邏輯表達(dá)式。

            4.?正確性與容錯(cuò)性要求
            4.1?程序首先是正確,其次是優(yōu)美
            4.2?無(wú)法證明你的程序沒(méi)有錯(cuò)誤,因此在編寫(xiě)完一段程序后,應(yīng)先回頭檢查。
            4.3?改一個(gè)錯(cuò)誤時(shí)可能產(chǎn)生新的錯(cuò)誤,因此在修改前首先考慮對(duì)其它程序的影響。
            4.4?所有變量在調(diào)用前必須被初始化。
            4.5?對(duì)所有的用戶輸入,必須進(jìn)行合法性檢查。
            4.6?不要比較浮點(diǎn)數(shù)的相等,
            如:?10.0?*?0.1?==?1.0?,?不可靠
            4.7?程序與環(huán)境或狀態(tài)發(fā)生關(guān)系時(shí),必須主動(dòng)去處理發(fā)生的意外事件,如文件能否
            邏輯鎖定、打印機(jī)是否聯(lián)機(jī)等。
            4.8?單元測(cè)試也是編程的一部份,提交聯(lián)調(diào)測(cè)試的程序必須通過(guò)單元測(cè)試。

            5.?可重用性要求

            5.1?重復(fù)使用的完成相對(duì)獨(dú)立功能的算法或代碼應(yīng)抽象為公共控件或類。
            5.2?公共控件或類應(yīng)考慮OO思想,減少外界聯(lián)系,考慮獨(dú)立性或封裝性。
            5.3?公共控件或類應(yīng)建立使用模板。

            附:C++?編程規(guī)范,delphi作相應(yīng)的參考

            .1適用范圍

            本標(biāo)準(zhǔn)適用于利用Visul?C++?,Borland?C++進(jìn)行軟件程序開(kāi)發(fā)的人員.。

            .2變量命名

            命名必須具有一定的實(shí)際意義,形式為xAbcFgh,x由變量類型確定,Abc、Fgh表示連續(xù)意
            義字符串,如果連續(xù)意義字符串僅兩個(gè),可都大寫(xiě).如OK.

            具體例程:

            BOOL類型?bEnable;
            ch?*?char?chText
            c?*?類對(duì)象?cMain(對(duì)象實(shí)例)
            h?*?Handle(句柄)?hWnd
            i?*?int
            n?*?無(wú)符號(hào)整型
            p?*?指針
            sz,str?*?字符串
            w?WORD
            x,y?坐標(biāo)

            Char或者TCHAR類型?與Windows?API有直接聯(lián)系的用szAppName[10]形式否則用
            FileName[10]形式,單個(gè)字符也可用小寫(xiě)字母表示;

            Int類型?nCmdShow;
            LONG類型?lParam;
            UINT類型?uNotify;?
            DWORD類型?dwStart;
            PSTR類型?pszTip;
            LPSTR類型?lpCmdLine
            LPTSTR類型?lpszClassName;
            LPVOID類型?lpReserved
            WPARAM類型?wParam,
            LPARAM類型?lParam
            HWND類型?hDlg;
            HDC類型?hDC;
            HINSTANCE類型?hInstance
            HANDLE類型?hInstance,
            HICON類型?hIcon;
            int?iTmp
            float?fTmp
            DWORD?dw*
            String?,?AnsiString?str?*
            m_?類成員變量?m_nVal,?m_bFlag
            g_?全局變量?g_nMsg,?g_bFlag

            局部變量中可采用如下幾個(gè)通用變量:nTemp,nResult,I,J(一般用于循環(huán)變量)。
            其他資源句柄同上

            .3常量命名和宏定義
            常量和宏定義必須具有一定的實(shí)際意義;
            常量和宏定義在#include和函數(shù)定義之間;
            常量和宏定義必須全部以大寫(xiě)字母來(lái)撰寫(xiě),中間可根據(jù)意義的連續(xù)性用下劃線連接,每一
            條定義的右側(cè)必須有一簡(jiǎn)單的注釋,說(shuō)明其作用;
            資源名字定義格式:
            菜單:IDM_XX或者CM_XX
            位圖:IDB_XX
            對(duì)話框:IDD_XX
            字符串:IDS_XX
            DLGINIT:DIALOG_XX
            ICON:IDR_XX

            .4函數(shù)命名
            函數(shù)原型說(shuō)明包括引用外來(lái)函數(shù)及內(nèi)部函數(shù),外部引用必須在右側(cè)注明函數(shù)來(lái)源:?模
            塊名及文件名,?如是內(nèi)部函數(shù),只要注釋其定義文件名;
            第一個(gè)字母必須使用大寫(xiě)字母,要求用大小寫(xiě)字母組合規(guī)范函數(shù)命名,必要時(shí)可用下劃線
            間隔,示例如下:
            void?UpdateDB_Tfgd?(TRACK_NAME);?//Module?Name?:r01/sdw.c
            void?PrintTrackData?(TRACK_NAME);?//Module?Name?:r04/tern.c
            void?ImportantPoint?(void);?//Module?Name?:r01/sdw.c
            void?ShowChar?(int?,?int?,?chtype);?//Local?Module
            void?ScrollUp_V?(int?,?int);?//Local?Module
            .5結(jié)構(gòu)體命名
            結(jié)構(gòu)體類型命名必須全部用大寫(xiě)字母,原則上前面以下劃線開(kāi)始;結(jié)構(gòu)體變量命名必須用
            大小寫(xiě)字母組合,第一個(gè)字母必須使用大寫(xiě)字母,必要時(shí)可用下劃線間隔。對(duì)于私有數(shù)
            據(jù)區(qū),必須注明其所屬的進(jìn)程。全局?jǐn)?shù)據(jù)定義只需注意其用途。

            示例如下:
            typedef?struct
            {
            char?szProductName[20];
            char?szAuthor[20];
            char?szReleaseDate[16];
            char?szVersion[10];?
            unsigned?long?MaxTables;
            unsigned?long?UsedTables;
            }DBS_DATABASE;
            DBS_DATABASE?GdataBase;

            6?控件的命名:
            用小寫(xiě)前綴表示類別
            用小寫(xiě)前綴表示類別:
            fm?窗口
            cmd?按鈕
            cob?combo,下拉式列表框
            txt?文本輸入框
            lab?labal,標(biāo)簽
            img?image,圖象
            pic?picture
            grd?Grid,網(wǎng)格
            scr?滾動(dòng)條
            lst?列表框
            frm?fram

            7注釋
            原則上注釋要求使用中文;
            文件開(kāi)始注釋內(nèi)容包括:公司名稱、版權(quán)、作者名稱、時(shí)間、模塊用途、背景介紹等,復(fù)
            雜的算法需要加上流程說(shuō)明;
            函數(shù)注釋包括:輸入、輸出、函數(shù)描述、流程處理、全局變量、調(diào)用樣例等,復(fù)雜的函數(shù)
            需要加上變量用途說(shuō)明;
            程序中注釋包括:修改時(shí)間和作者、方便理解的注釋等;
            引用一:?文件開(kāi)頭的注釋模板
            /******************************************************************

            **?文件名:
            **?Copyright?(c)?1998-1999?*********公司技術(shù)開(kāi)發(fā)部
            **?創(chuàng)建人:
            **?日?期:
            **?修改人:
            **?日?期:
            **?描?述:
            **
            **?版?本:
            **--------------------------------------------------------------------------
            ---
            ******************************************************************/
            引用二:?函數(shù)開(kāi)頭的注釋模板
            /*****************************************************************

            **?函數(shù)名:
            **?輸?入:?a,b,c
            **?a---
            **?b---
            **?c---
            **?輸?出:?x---
            **?x?為?1,?表示...
            **?x?為?0,?表示...
            **?功能描述:
            **?全局變量:
            **?調(diào)用模塊:
            **?作?者:
            **?日?期:
            **?修?改:
            **?日?期:
            **?版本
            ****************************************************************/
            引用三:?程序中的注釋模板
            /*----------------------------------------------------------*/
            /*?注釋內(nèi)容?*/
            /*----------------------------------------------------------*/
            8?程序
            a.?程序編碼力求簡(jiǎn)潔,結(jié)構(gòu)清晰,避免太多的分支結(jié)構(gòu)及太過(guò)于技巧性的程序,
            盡量不采用遞歸模式。
            b.?編寫(xiě)程序時(shí),亦必須想好測(cè)試的方法,換句話說(shuō),”單元測(cè)試”?的測(cè)試方案應(yīng)
            在程序編寫(xiě)時(shí)一并擬好。
            c.?注釋一定要與程序一致。
            d.?版本封存以后的修改一定要將老語(yǔ)句用/*?*/?封閉,不能自行刪除或修改,并要
            在文件及函數(shù)的修改記錄中加以記錄。
            e.?程序中每個(gè)block?的開(kāi)頭?”{"?及?"}”?必須對(duì)齊,嵌套的block?每進(jìn)一套,
            縮進(jìn)一個(gè)tab,TAB?為4個(gè)空格,block類型包括if、for、while、do等關(guān)鍵字引出的。
            f.?對(duì)于比較大的函數(shù),每個(gè)block?和特殊的函數(shù)調(diào)用,都必須注明其功能,舉例如下

            count.divisor?=?1193280?/?freq;?//?compute?the?proper?count
            OutByte((unsigned?short)67,?(unsigned?char)182);?//?tell?8253?that?a
            count?is?coming
            OutByte((unsigned?short)66,?count.?c[0]);?//?send?low-order?byte
            OutByte((unsigned?short)66,?count.?c[1]);?//?send?high-order?byte
            ×××××××××××××××××××××××××××××××××××××××

            bcb,delphi中的變量命名:
            遵循匈牙利命名法,命
            名必須有意義,制定如下規(guī)定
            窗體:?以大寫(xiě)的W開(kāi)始,如About版權(quán)窗體,?命名為WAbout
            文件:以大寫(xiě)的F開(kāi)始,如About版權(quán)窗體,文件命名為FAbout.cpp
            按鈕(Button):如退出按鈕,命名為btnExit

            基類:?加base標(biāo)記,如報(bào)表基類,窗體命名為:WBaseRep,?文件命名為FBaseRep.cpp?

            Feedback

            # re: VC編程規(guī)范  回復(fù)  更多評(píng)論   

            2006-11-24 17:56 by haitao-andy
            abao, persist to the end.

            # re: VC編程規(guī)范  回復(fù)  更多評(píng)論   

            2007-06-09 00:59 by 星夢(mèng)情緣
            可能有點(diǎn)用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            天天爽天天爽天天片a久久网| 久久综合欧美成人| 久久综合伊人77777麻豆| 久久久久久久国产免费看| 蜜桃麻豆www久久国产精品| 精品国产99久久久久久麻豆| 欧洲精品久久久av无码电影| 国产成人综合久久久久久| 日本久久久久久久久久| 久久综合九色综合网站| 国产精品成人久久久久三级午夜电影| 久久精品国产一区二区三区| 精品熟女少妇AV免费久久| 久久免费线看线看| 精品久久久一二三区| 久久这里只有精品久久| 人人妻久久人人澡人人爽人人精品| 久久被窝电影亚洲爽爽爽| 亚洲欧洲精品成人久久奇米网| 成人综合伊人五月婷久久| 久久久久国产精品三级网| 久久精品国产亚洲综合色| 中文字幕久久波多野结衣av| 久久精品夜色噜噜亚洲A∨| 麻豆亚洲AV永久无码精品久久| 久久婷婷五月综合97色直播| 国产精品久久久久久吹潮| 久久精品中文无码资源站| 久久精品国产一区二区三区| 91精品免费久久久久久久久| 久久精品国产亚洲AV大全| 青青草原精品99久久精品66| 久久福利资源国产精品999| 久久人人爽人人爽AV片| 久久久久久久综合日本| 人人狠狠综合88综合久久| 久久久久亚洲AV无码专区网站 | 国産精品久久久久久久| 9久久9久久精品| 国产精品一区二区久久| 国产精品一区二区久久国产|