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

(轉)VC編程規范-程序員們都應該這樣寫代碼

基本要求

1.1 程序結構清析,簡單易懂,單個函數的程序行數不得超過100行。
1.2 打算干什么,要簡單,直接了當,代碼精簡,避免垃圾程序。
1.3 盡量使用標準庫函數和公共函數。
1.4 不要隨意定義全局變量,盡量使用局部變量。
1.5 使用括號以避免二義性。

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


3. 結構化要求

3.1 禁止出現兩條等價的支路。
3.2 禁止GOTO語句。
3.3 用 IF 語句來強調只執行兩組語句中的一組。禁止 ELSE GOTO 和 ELSE RETURN。
3.4 用 CASE 實現多路分支。
3.5 避免從循環引出多個出口。
3.6 函數只有一個出口。
3.7 不使用條件賦值語句。
3.8 避免不必要的分支。
3.9 不要輕易用條件分支去替換邏輯表達式。

4. 正確性與容錯性要求

4.1 程序首先是正確,其次是優美
4.2 無法證明你的程序沒有錯誤,因此在編寫完一段程序后,應先回頭檢查。
4.3 改一個錯誤時可能產生新的錯誤,因此在修改前首先考慮對其它程序的影響。
4.4 所有變量在調用前必須被初始化。
4.5 對所有的用戶輸入,必須進行合法性檢查。
4.6 不要比較浮點數的相等,
如: 10.0 * 0.1 == 1.0 , 不可靠
4.7 程序與環境或狀態發生關系時,必須主動去處理發生的意外事件,如文件能否
邏輯鎖定、打印機是否聯機等。
4.8 單元測試也是編程的一部份,提交聯調測試的程序必須通過單元測試。

5. 可重用性要求

5.1 重復使用的完成相對獨立功能的算法或代碼應抽象為公共控件或類。
5.2 公共控件或類應考慮OO思想,減少外界聯系,考慮獨立性或封裝性。
5.3 公共控件或類應建立使用模板。

附:C++ 編程規范,delphi作相應的參考


.1適用范圍

本標準適用于利用Visul C++ ,Borland C++進行軟件程序開發的人員.。



.2變量命名

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

具體例程:

BOOL類型 bEnable;



ch * char chText
c * 類對象 cMain(對象實例)
h * Handle(句柄) hWnd
i * int
n * 無符號整型
p * 指針
sz,str * 字符串
w WORD
x,y 坐標

Char或者TCHAR類型 與Windows API有直接聯系的用szAppName[10]形式否則用
FileName[10]形式,單個字符也可用小寫字母表示;

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

局部變量中可采用如下幾個通用變量:nTemp,nResult,I,J(一般用于循環變量)。

其他資源句柄同上

.3常量命名和宏定義

常量和宏定義必須具有一定的實際意義;

常量和宏定義在#include和函數定義之間;

常量和宏定義必須全部以大寫字母來撰寫,中間可根據意義的連續性用下劃線連接,每一
條定義的右側必須有一簡單的注釋,說明其作用;

資源名字定義格式:

菜單:IDM_XX或者CM_XX

位圖:IDB_XX

對話框:IDD_XX

字符串:IDS_XX

DLGINIT:DIALOG_XX

ICON:IDR_XX

.4函數命名

函數原型說明包括引用外來函數及內部函數,外部引用必須在右側注明函數來源: 模
塊名及文件名, 如是內部函數,只要注釋其定義文件名;

第一個字母必須使用大寫字母,要求用大小寫字母組合規范函數命名,必要時可用下劃線
間隔,示例如下:

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結構體命名

結構體類型命名必須全部用大寫字母,原則上前面以下劃線開始;結構體變量命名必須用
大小寫字母組合,第一個字母必須使用大寫字母,必要時可用下劃線間隔。對于私有數
據區,必須注明其所屬的進程。全局數據定義只需注意其用途。

示例如下:

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 控件的命名:
用小寫前綴表示類別

用小寫前綴表示類別:
fm 窗口
cmd 按鈕
cob combo,下拉式列表框
txt 文本輸入框
lab labal,標簽
img image,圖象
pic picture
grd Grid,網格
scr 滾動條
lst 列表框
frm fram



7注釋

原則上注釋要求使用中文;

文件開始注釋內容包括:公司名稱、版權、作者名稱、時間、模塊用途、背景介紹等,復
雜的算法需要加上流程說明;

函數注釋包括:輸入、輸出、函數描述、流程處理、全局變量、調用樣例等,復雜的函數
需要加上變量用途說明;

程序中注釋包括:修改時間和作者、方便理解的注釋等;





引用一: 文件開頭的注釋模板

/******************************************************************

** 文件名:

** Copyright (c) 1998-1999 *********公司技術開發部

** 創建人:

** 日 期:

** 修改人:

** 日 期:

** 描 述:

**

** 版 本:

**--------------------------------------------------------------------------
---





******************************************************************/



引用二: 函數開頭的注釋模板

/*****************************************************************

** 函數名:

** 輸 入: a,b,c

** a---

** b---

** c---

** 輸 出: x---

** x 為 1, 表示...

** x 為 0, 表示...

** 功能描述:

** 全局變量:

** 調用模塊:

** 作 者:

** 日 期:

** 修 改:

** 日 期:

** 版本

****************************************************************/

引用三: 程序中的注釋模板

/*----------------------------------------------------------*/

/* 注釋內容 */

/*----------------------------------------------------------*/

8 程序

a. 程序編碼力求簡潔,結構清晰,避免太多的分支結構及太過于技巧性的程序,
盡量不采用遞歸模式。

b. 編寫程序時,亦必須想好測試的方法,換句話說,”單元測試” 的測試方案應
在程序編寫時一并擬好。

c. 注釋一定要與程序一致。

d. 版本封存以后的修改一定要將老語句用/* */ 封閉,不能自行刪除或修改,并要
在文件及函數的修改記錄中加以記錄。

e. 程序中每個block 的開頭 ”{" 及 "}” 必須對齊,嵌套的block 每進一套,
縮進一個tab,TAB 為4個空格,block類型包括if、for、while、do等關鍵字引出的。

f. 對于比較大的函數,每個block 和特殊的函數調用,都必須注明其功能,舉例如下



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中的變量命名:

遵循匈牙利命名法,命
名必須有意義,制定如下規定

窗體: 以大寫的W開始,如About版權窗體, 命名為WAbout

文件:以大寫的F開始,如About版權窗體,文件命名為FAbout.cpp

按鈕(Button):如退出按鈕,命名為btnExit

……

基類: 加base標記,如報表基類,窗體命名為:WBaseRep, 文件命名為FBaseRep.cpp 

posted on 2010-11-05 16:28 蝸牛也Coding 閱讀(599) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


<2009年7月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

導航

統計

常用鏈接

留言簿(8)

隨筆檔案(78)

搜索

積分與排名

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久综合给合久久狠狠色| 亚洲国产精品成人精品| 久久精品中文字幕一区| 欧美一区午夜精品| 午夜亚洲福利| 久久夜精品va视频免费观看| 美国三级日本三级久久99| 欧美成人dvd在线视频| 欧美日韩国产欧美日美国产精品| 欧美伦理一区二区| 国产精品入口66mio| 极品av少妇一区二区| 亚洲精品美女| 午夜精品成人在线| 久久综合色一综合色88| 亚洲国产天堂久久综合网| 亚洲精品日韩久久| 欧美中文字幕视频在线观看| 亚洲视频免费| 亚洲一区二区高清视频| 久久大香伊蕉在人线观看热2| 久久蜜臀精品av| 欧美视频在线观看免费网址| 国产亚洲一区二区在线观看 | 久久激情综合网| 欧美本精品男人aⅴ天堂| 国产精品捆绑调教| 亚洲日韩欧美视频一区| 欧美亚洲免费| 亚洲精品123区| 欧美一区二视频在线免费观看| 麻豆精品国产91久久久久久| 国产精品久久9| 亚洲精品久久久一区二区三区| 亚洲在线第一页| 欧美激情视频网站| 久久成人免费电影| 国产精品久久久久久久久免费樱桃| 精品91视频| 久久av最新网址| 一本久久综合亚洲鲁鲁| 免费成人av| 黄色日韩精品| 久久国产精品99国产精| 艳妇臀荡乳欲伦亚洲一区| 蜜桃久久av一区| 国内一区二区三区在线视频| 亚洲欧美日韩国产| 一区二区三区导航| 欧美国产欧美亚州国产日韩mv天天看完整| 国产欧美日本| 欧美一区2区三区4区公司二百| 亚洲精品综合精品自拍| 欧美成熟视频| 亚洲精品国产精品国自产在线| 久久综合网hezyo| 欧美在线一级视频| 国产一区二区黄色| 久久精品在线视频| 久久福利影视| 激情欧美丁香| 噜噜噜在线观看免费视频日韩| 欧美一区二区三区啪啪| 国产一区二区三区高清播放| 欧美在线3区| 性久久久久久久| 国产午夜精品一区二区三区欧美 | 欧美激情亚洲一区| 久久精品国产一区二区三区免费看 | 亚洲欧美日韩另类精品一区二区三区| 亚洲视频免费看| 欧美国产亚洲另类动漫| 久久婷婷久久| 亚洲日本成人| 亚洲精品视频免费观看| 欧美日韩一区二区三区在线 | 99re6这里只有精品视频在线观看| 欧美成人日本| 欧美激情视频在线播放| 宅男噜噜噜66国产日韩在线观看| 一本色道久久加勒比精品| 国产精品久久夜| 久久久久国色av免费看影院| 久久蜜桃av一区精品变态类天堂| 亚洲国产日韩欧美一区二区三区| 亚洲黄色影片| 国产精品久久久久久久免费软件| 久久九九有精品国产23| 免费高清在线视频一区·| 一区二区高清在线| 午夜精品久久久久久久久久久| 黄色影院成人| 99国产精品视频免费观看一公开 | 99精品欧美一区| 午夜影院日韩| 日韩视频在线一区| 久久aⅴ国产紧身牛仔裤| 亚洲人成网站影音先锋播放| 亚洲午夜激情网页| 亚洲国产精品尤物yw在线观看| 99国产精品久久久久老师| 国产一区自拍视频| 日韩一级免费观看| 在线观看福利一区| 亚洲午夜av电影| 亚洲激情网站免费观看| 亚洲欧美久久久久一区二区三区| 亚洲丶国产丶欧美一区二区三区| 一级日韩一区在线观看| 伊人成人在线| 西西人体一区二区| 亚洲亚洲精品三区日韩精品在线视频| 久久精品夜色噜噜亚洲a∨| 亚洲一区二区三区四区五区黄| 麻豆精品视频在线| 久久精品一区四区| 国产精品视频99| 日韩视频精品| 亚洲美女一区| 美日韩精品免费| 久久综合亚洲社区| 国产一区二区三区在线观看精品| 亚洲欧洲另类国产综合| 尤物网精品视频| 欧美专区亚洲专区| 亚洲精品女av网站| 久久黄色影院| 久久精品电影| 国产美女精品免费电影| 一本色道久久综合亚洲二区三区| 最新国产精品拍自在线播放| 久久免费视频网站| 美女黄网久久| 狠狠色综合色综合网络| 久久福利影视| 麻豆91精品91久久久的内涵| 国产视频一区在线观看一区免费| 亚洲在线观看视频网站| 午夜精品久久久久久久久| 欧美视频一区二区| 一本色道久久综合狠狠躁篇的优点| 99精品欧美一区二区三区综合在线| 欧美黄色一区| 日韩午夜黄色| 午夜精品区一区二区三| 国产精品一二三四区| 欧美一区不卡| 麻豆久久婷婷| 亚洲精品女av网站| 欧美日韩午夜在线| 亚洲欧美国产精品桃花| 久久久www免费人成黑人精品| 国产精品中文字幕欧美| 欧美亚洲在线视频| 免费在线日韩av| 亚洲精品在线免费| 国产精品国产自产拍高清av| 午夜激情综合网| 欧美成人精品激情在线观看| 日韩性生活视频| 国产精品视频内| 久久久国产精彩视频美女艺术照福利| 欧美激情视频在线免费观看 欧美视频免费一 | 欧美一区二区三区四区高清| 久久久久综合| 亚洲精品视频在线播放| 国产精品户外野外| 久久免费高清视频| 亚洲美女黄色| 久久久久se| 亚洲免费成人av| 国产视频久久| 欧美日韩大陆在线| 久久成人久久爱| 日韩一区二区精品视频| 久久久久免费视频| 一区二区三区精品视频在线观看| 国产精品一香蕉国产线看观看| 狂野欧美一区| 性久久久久久| 亚洲卡通欧美制服中文| 狂野欧美激情性xxxx欧美| 亚洲香蕉在线观看| 亚洲激情啪啪| 国产一区二区精品丝袜| 欧美另类女人| 免费不卡欧美自拍视频| 欧美亚洲视频| 亚洲综合视频1区| 一本大道久久a久久精品综合 | 国产精品99久久99久久久二8 | 免费成人高清在线视频| 亚洲专区在线| 99re热这里只有精品视频| 欧美成人一区在线| 久久久亚洲精品一区二区三区| 午夜精品三级视频福利| 夜夜狂射影院欧美极品| 在线观看欧美视频| 国产综合久久久久影院|