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

平凡的天才

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

VC編程規范

Posted on 2006-11-24 17:52 平凡的天才 閱讀(2252) 評論(2)  編輯 收藏 引用
經過千辛萬苦,我終于開博客了
剛來給個規范吧


VC編程規范
1.?基本要求
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?

Feedback

# re: VC編程規范  回復  更多評論   

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

# re: VC編程規范  回復  更多評論   

2007-06-09 00:59 by 星夢情緣
可能有點用

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


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            一区二区三区回区在观看免费视频| 国产片一区二区| 一区二区三区www| 欧美久久婷婷综合色| 久久久噜噜噜久久狠狠50岁| 亚洲免费在线| 欧美一区二区三区四区夜夜大片| 午夜精品久久久久久久| 久久精品91久久香蕉加勒比| 久久人人97超碰人人澡爱香蕉| 久久婷婷国产综合国色天香| 你懂的国产精品永久在线| 亚洲激情成人| 欧美黄色免费网站| 亚洲欧洲一区| 亚欧美中日韩视频| 欧美aⅴ99久久黑人专区| 欧美调教视频| 黑人巨大精品欧美黑白配亚洲 | 亚洲一级黄色片| 欧美一区二区三区在线观看视频| 麻豆成人小视频| 99精品视频免费在线观看| 欧美一区二区精品在线| 欧美激情精品久久久久久大尺度| 国产精品午夜在线| 亚洲精品韩国| 久久午夜视频| 国产精品99久久久久久久女警| 欧美主播一区二区三区| 欧美—级a级欧美特级ar全黄| 国产精品免费网站| 亚洲精品乱码久久久久久黑人 | 欧美成人自拍视频| 国产欧美精品在线| 一本色道88久久加勒比精品| 久久久久久网| 午夜精品久久| 欧美手机在线| 亚洲精品一区二| 久久尤物电影视频在线观看| 亚洲一区二区3| 欧美日韩午夜| 亚洲三级影院| 亚洲国产福利在线| 久久精品国产69国产精品亚洲| 国产精品v欧美精品v日韩| 亚洲免费福利视频| 亚洲第一成人在线| 噜噜爱69成人精品| 国内精品嫩模av私拍在线观看| 亚洲欧美日韩综合| 在线亚洲国产精品网站| 欧美日韩高清不卡| 一区二区三区精品视频| 国产精品视频精品| 亚洲精品久久久久中文字幕欢迎你| 亚洲乱码国产乱码精品精可以看| 日韩视频在线观看| 久久久精品免费视频| 欧美日韩在线播放| 一区二区三区日韩欧美精品| 欧美jizz19hd性欧美| 欧美一区二区三区日韩| 国产精品视频999| 亚洲在线免费观看| av72成人在线| 欧美日韩一区二区三区高清| 亚洲精品一区二区三区蜜桃久| 六十路精品视频| 久久激五月天综合精品| 黑人操亚洲美女惩罚| 欧美成人亚洲成人日韩成人| 久久狠狠亚洲综合| 亚洲二区在线视频| 欧美国产日韩免费| 欧美精品一区二区三区在线播放 | 亚洲国产裸拍裸体视频在线观看乱了 | 欧美日韩高清在线| 99视频一区| 一区二区高清在线| 国产精品视频99| 久久一二三区| 欧美黑人多人双交| 亚洲视频在线视频| 亚洲一区二区在线看| 国内一区二区三区| 亚洲国产精品热久久| 欧美日韩视频在线一区二区| 欧美一级午夜免费电影| 久久婷婷国产综合精品青草| 一本一本久久a久久精品综合妖精| 夜夜爽av福利精品导航| 国产日韩专区| 亚洲国产精品一区制服丝袜| 国产精品vip| 欧美jjzz| 国产精品亚洲美女av网站| 久久青草久久| 欧美视频免费在线| 久热精品在线视频| 国产精品激情电影| 欧美超级免费视 在线| 欧美日韩日本网| 欧美freesex交免费视频| 亚洲综合精品自拍| 久久精品免费电影| 亚洲国产日韩欧美在线动漫| 亚洲麻豆国产自偷在线| 黑人操亚洲美女惩罚| 在线中文字幕不卡| 亚洲激情另类| 久久国产一二区| 亚洲欧美日本伦理| 欧美成年视频| 久久都是精品| 国产精品福利在线观看| 欧美激情欧美激情在线五月| 国产色综合天天综合网| 在线视频亚洲一区| 在线一区二区视频| 欧美成人午夜激情在线| 久久全国免费视频| 国内成人精品一区| 亚洲欧美日韩国产精品| 99re6这里只有精品| 久久久夜精品| 久久躁日日躁aaaaxxxx| 国产视频丨精品|在线观看| 日韩一区二区精品葵司在线| 亚洲精品久久久蜜桃| 另类酷文…触手系列精品集v1小说| 西瓜成人精品人成网站| 国产精品久久久久久久久久尿| 亚洲精品中文字幕女同| 日韩写真在线| 欧美国产专区| 亚洲精品一区二区三区在线观看| 亚洲日本成人女熟在线观看| 久久午夜精品| 欧美高清在线视频观看不卡| 亚洲第一黄色| 欧美成人国产一区二区| 亚洲日本va午夜在线电影| 日韩一级黄色av| 欧美日本一道本| 亚洲高清不卡av| 亚洲毛片一区| 欧美视频久久| 午夜精品美女久久久久av福利| 羞羞色国产精品| 国产丝袜一区二区三区| 久久国产福利| 亚洲成人资源网| 日韩视频一区二区在线观看| 欧美另类变人与禽xxxxx| 一区二区三区久久| 久久成人精品| 亚洲黄色av| 欧美日韩一区二区欧美激情| 亚洲综合色自拍一区| 久久精品道一区二区三区| 狠狠色丁香婷婷综合| 欧美成人久久| 亚洲特色特黄| 欧美国产日韩精品免费观看| 亚洲性视频网站| 精品动漫一区| 欧美系列亚洲系列| 久久精品视频导航| 日韩一区二区久久| 另类综合日韩欧美亚洲| 亚洲一区二区三区涩| 狠狠色丁香久久综合频道 | 久久综合久久综合久久综合| 久久久综合视频| 99在线精品免费视频九九视| 国产精品久久久久久久午夜片| 欧美一区二区大片| 亚洲精品男同| 久久久久一区二区三区| 一本一本久久a久久精品牛牛影视| 国产日韩欧美a| 欧美日韩国产成人高清视频| 欧美尤物一区| 一区二区三区www| 欧美激情一区二区三区不卡| 先锋影音一区二区三区| 亚洲国产免费看| 国产婷婷精品| 国产精品久久久久久久久免费樱桃 | 亚洲综合色噜噜狠狠| 在线观看91精品国产麻豆| 欧美三级乱码| 欧美成人中文字幕| 久久躁日日躁aaaaxxxx| 香蕉久久夜色精品国产使用方法| 91久久黄色| 欧美a级大片| 久久久久看片|