C语言编程规范.ppt

上传人:qwe****56 文档编号:80597326 上传时间:2023-03-23 格式:PPT 页数:18 大小:348.89KB
返回 下载 相关 举报
C语言编程规范.ppt_第1页
第1页 / 共18页
C语言编程规范.ppt_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《C语言编程规范.ppt》由会员分享,可在线阅读,更多相关《C语言编程规范.ppt(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、VC编程程规范范信息计算11级1.基本要求基本要求v程序结构清析,简单易懂,单个函数的程序行数尽量不超过100行。v打算干什么,要简单,直接了当,代码精简,避免垃圾程序。v尽量使用标准库函数和公共函数。v不要随意定义全局变量,尽量使用局部变量。v使用括号以避免二义性。2.可可读性要求性要求v可读性第一,效率第二。v保持注释与代码完全一致。v每个源程序文件,都有文件头说明,说明规格见规范。v每个函数,都有函数头说明,说明规格见规范。v主要变量(结构、联合、类或对象)定义或引用时,注释能反映其含义。v常量定义(DEFINE)有相应说明。v处理过程的每个阶段都有相关注释说明。v在典型算法前都有注释。

2、v利用缩进来显示程序的逻辑结构,缩进量一致并以Tab键为单位,定义Tab为 6个字节。v循环、分支层次不要超过五层。v注释可以与语句在同一行,也可以在上行。v空行和空白字符也是一种特殊注释。v一目了然的语句不加注释。v注释的作用范围可以为:定义、引用、条件分支以及一段代码。v注释行数(不包括程序头和函数头说明部份)应占总行数的 1/5 到 1/3。3.结构化要求构化要求v禁止GOTO语句。v用 IF 语句来强调只执行两组语句中的一组。禁止 ELSE GOTO 和 ELSE RETURN。v用 CASE 实现多路分支。v避免从循环引出多个出口。v函数只有一个出口。v避免不必要的分支。4.正确性与

3、容正确性与容错性要求性要求v程序首先是正确,其次是优美v无法证明你的程序没有错误,因此在编写完一段程序后,应先回头检查。v改一个错误时可能产生新的错误,因此在修改前首先考虑对其它程序的影响。v所有变量在调用前必须被初始化。v对所有的用户输入,必须进行合法性检查。v不要比较浮点数的相等,如:10.0*0.1=1.0,不可靠v程序与环境或状态发生关系时,必须主动去处理发生的意外事件,如文件能否逻辑锁定、打印机是否联机等。v单元测试也是编程的一部份,提交联调测试的程序必须通过单元测试。5.可重用性要求可重用性要求v重复使用的完成相对独立功能的算法或代码应抽象为公共控件或类。v公共控件或类应考虑OO思

4、想,减少外界联系,考虑独立性或封装性。v公共控件或类应建立使用模板。6注注释v原则上注释要求使用中文;v文件开始注释内容包括:公司名称、版权、作者名称、时间、模块用途、背景介绍等,复杂的算法需要加上流程说明;v函数注释包括:输入、输出、函数描述、流程处理、全局变量、调用样例等,复杂的函数需要加上变量用途说明;v程序中注释包括:修改时间和作者、方便理解的注释等;文件开文件开头的注的注释模板模板/*文件名:*Copyright(c)2011-2012*公司技术开发部*创建人:*日 期:*修改人:*日 期:*描 述:*版 本:*-*/函数开函数开头的注的注释模板模板/*函数名:*输 入:a,b,c*

5、a-*b-*c-*输 出:x-*x 为 1,表示.*x 为 0,表示.*功能描述:*全局变量:*调用模块:*作 者:*日 期:*修 改:*日 期:*版本*/程序中的注程序中的注释模板模板/*-*/*注释内容*/*-*/单行注释:/注释内容 7.C编程程规范范v变量命名法(匈牙利命名法)v匈牙利命名法是一种编程时的命名规范。基本原则是:变量名属性类型对象描述。其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原则。目前在Windows程序开发和MFC程序开发中常用的命名规则是匈牙利命名法。下面就是HN命名法的一般规则变量名属性量名属性类型型对象象描

6、述描述1.属性部分属性部分全局全局变量量g_const常量常量c_c+类成成员变量量m_静静态变量量s_2.类型部分型部分指指针p函数函数fn无效无效v句柄句柄h长整型整型l布布尔b浮点型浮点型(有有时也指文件也指文件)f双字双字dw字符串字符串sz短整型短整型n双精度浮点双精度浮点d计数数c(通常用(通常用cnt)字符字符ch(通常用(通常用c)整型整型i(通常用(通常用n)字字节by字字w实型型r无符号无符号u3.描述部分描述部分最大最大Max最小最小Min初始化初始化Init临时变量量T(或(或Temp)源源对象象Src目的目的对象象Dest几个例子:几个例子:(1)hwnd:h是是类型

7、描述,表示句柄,型描述,表示句柄,wnd是是变量量对象描述,表示窗口,所以象描述,表示窗口,所以hwnd表示窗口句柄;表示窗口句柄;(2)pfnEatApple:pfn是是类型描述,表示指向函数的指型描述,表示指向函数的指针,EatApple是是变量量对象描述,所以它表示指向象描述,所以它表示指向EatApple函数的函数指函数的函数指针变量。量。(3)g_cch:g_是属性描述,表示全局是属性描述,表示全局变量,量,c和和ch分分别是是计数数类型和字符型和字符类型,一起表示型,一起表示变量量类型,型,这里忽略里忽略了了对象描述,所以它表示一个象描述,所以它表示一个对字符字符进行行计数的全局数

8、的全局变量。量。匈牙利命名法示例匈牙利命名法示例vMFCMFC、句柄、控件及、句柄、控件及结构的命构的命名名规范范WindowsWindows类型类型样本变量样本变量MFCMFC类类样本变量样本变量HWNDHWNDhWnd;CWnd*CWnd*pWnd;HDLGHDLGhDlg;CDialog*CDialog*pDlg;HDCHDChDC;CDC*CDC*pDC;HGDIOBJHGDIOBJhGdiObj;CGdiObject*CGdiObject*pGdiObj;HPENHPENhPen;CPen*CPen*pPen;HBRUSHHBRUSHhBrush;CBrush*CBrush*pBru

9、sh;HFONTHFONThFont;CFont*CFont*pFont;HBITMAPHBITMAPhBitmap;CBitmap*CBitmap*pBitmap;HPALETTEHPALETTEhPaltte;CPalette*CPalette*pPalette;HRGNHRGNhRgn;CRgn*CRgn*pRgn;HMENUHMENUhMenu;CMenu*CMenu*pMenu;HWNDHWNDhCtl;CState*CState*pState;HWNDHWNDhCtl;CButton*CButton*pButton;HWNDHWNDhCtl;CEdit*CEdit*pEdit;HW

10、NDHWNDhCtl;CListBox*CListBox*pListBox;HWNDHWNDhCtl;CComboBox*CComboBox*pComboBox;HWNDHWNDhCtl;CScrollBar*CScrollBar*pScrollBar;HSZHSZhszStr;CStringCStringpStr;POINTPOINTpt;CPointCPointpt;SIZESIZEsize;CSizeCSizesize;RECTRECTrect;CRectCRectrect;v一般前一般前缀命名命名规范范 前缀前缀类型类型实例实例C C类或结构CDocument,CPrintInfom_

11、m_成员变量m_pDoc,m_nCustomers变量命名量命名规范范 前缀前缀类型类型描述描述实例实例chchcharchar8 8位字符位字符chGradechGradechchTCHARTCHAR如果如果_UNICODE_UNICODE定义,则为定义,则为1616位字符位字符chNamechNameb bBOOLBOOL布尔值布尔值bEnablebEnablen nintint整型(其大小依赖于操作系统)整型(其大小依赖于操作系统)nLengthnLengthn nUINTUINT无符号值(其大小依赖于操作系统)无符号值(其大小依赖于操作系统)nHeightnHeightw wWORDW

12、ORD1616位无符号值位无符号值wPoswPosl lLONGLONG3232位有符号整型位有符号整型lOffsetlOffsetdwdwDWORDDWORD3232位无符号整型位无符号整型dwRangedwRangep p*指针指针pDocpDoclplpFAR*FAR*远指针远指针lpszNamelpszNamelpszlpszLPSTRLPSTR3232位字符串指针位字符串指针lpszNamelpszNamelpszlpszLPCSTRLPCSTR3232位常量字符串指针位常量字符串指针lpszNamelpszNamelpszlpszLPCTSTRLPCTSTR如果如果_UNICODE

13、_UNICODE定义,则为定义,则为3232位常量字符串指针位常量字符串指针lpszNamelpszNameh hhandlehandleWindowsWindows对象句柄对象句柄hWndhWndlpfnlpfncallbackcallback指向指向CALLBACKCALLBACK函数的远指针函数的远指针应用程序符号命名用程序符号命名规范范前缀前缀符号类型符号类型实例实例范围范围IDR_IDR_不同类型的多个资源共享标识IDR_MAIINFRAME10 x6FFFIDD_IDD_对话框资源IDD_SPELL_CHECK10 x6FFFHIDD_HIDD_对话框资源的Help上下文HIDD_

14、SPELL_CHECK0 x200010 x26FFIDB_IDB_位图资源IDB_COMPANY_LOGO10 x6FFFIDC_IDC_光标资源IDC_PENCIL10 x6FFFIDI_IDI_图标资源IDI_NOTEPAD10 x6FFFID_ID_来自菜单项或工具栏的命令ID_TOOLS_SPELLING0 x80000 xDFFFHID_HID_命令Help上下文HID_TOOLS_SPELLING0 x180000 x1DFFFIDP_IDP_消息框提示IDP_INVALID_PARTNO80 xDEEFHIDP_HIDP_消息框Help上下文HIDP_INVALID_PARTN

15、O0 x300080 x3DEFFIDS_IDS_串资源IDS_COPYRIGHT10 x7EEFIDC_IDC_对话框内的控件IDC_RECALC80 xDEEF库标识符命名法符命名法标识符标识符值和含义值和含义u uANSI(N)或Unicode(U)d d调试或发行:D=调试;忽略标识符为发行。静静态库版本命名版本命名规范范库库描述描述NAFXCWD.LIBNAFXCWD.LIB调试版本:MFC静态连接库NAFXCW.LIBNAFXCW.LIB发行版本:MFC静态连接库UAFXCWD.LIBUAFXCWD.LIB调试版本:具有Unicode支持的MFC静态连接库UAFXCW.LIBUAF

16、XCW.LIB发行版本:具有Unicode支持的MFC静态连接库动态连接接库命名命名规范范名称名称类型类型_AFXDLL_AFXDLL唯一的动态连接库(DLL)版本WINAPIWINAPIWindows所提供的函数Windows.hWindows.h中新的命名中新的命名规范范类型类型定义描述定义描述WINAPIWINAPI使用在API声明中的FAR PASCAL位置,如果正在编写一个具有导出API人口点的DLL,则可以在自己的API中使用该类型CALLBACCALLBACK K使用在应用程序回叫例程,如窗口和对话框过程中的FAR PASCAL的位置LPCSTRLPCSTR与LPSTR相同,只是LPCSTR用于只读串指针,其定义类似(const char FAR*)UINTUINT可移植的无符号整型类型,其大小由主机环境决定(对于Windows NT和Windows 9x为32位);它是unsigned int的同义词LRESULTLRESULT窗口程序返回值的类型LPARAMLPARAM声明lParam所使用的类型,lParam是窗口程序的第四个参数WPARAMWPARAM声明wParam所使用的类型,wParam是窗口程序的第三个参数LPVOIDLPVOID一般指针类型,与(void*)相同,可以用来代替LPSTR

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁