vc编程规范

上传人:xh****66 文档编号:57175091 上传时间:2018-10-19 格式:DOC 页数:9 大小:72KB
返回 下载 相关 举报
vc编程规范_第1页
第1页 / 共9页
vc编程规范_第2页
第2页 / 共9页
vc编程规范_第3页
第3页 / 共9页
vc编程规范_第4页
第4页 / 共9页
vc编程规范_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《vc编程规范》由会员分享,可在线阅读,更多相关《vc编程规范(9页珍藏版)》请在金锄头文库上搜索。

1、密级:内部公开密级:内部公开 文档编号:文档编号:NTT_SD_VBCGFNTT_SD_VBCGF版本号:版本号:V1.0V1.0VCVC 编程规范编程规范惠州市新中新电子技术开发有限公司惠州市新中新电子技术开发有限公司编制: 生效日期: 审核: 批准:- 惠州市新中新电子技术开发有限公司对本文件资料享受著作权及其它专 属权利,未经书面许可,不得将该等文件资料(其全部或任何部分)披露予 任何第三方,或进行修改后使用。VC 编程规范 V1.0XXXX 公司 版权所有 第 1 页 共 9 页文文件件更更改改摘摘要要:日期日期版本号版本号修订说明修订说明修订人修订人审核人审核人批准人批准人2008-

2、06-26V0.1创建 2008-08-08V1.0正式版本VC 编程规范 V1.0XXXX 公司 版权所有 第 2 页 共 9 页1 1变量的命名规则变量的命名规则变量的命名应遵从 变量名=作用域+变量类型+变量含义1.11.1作用域的表示作用域的表示g_ 全局变量 m_类成员变量 局部变量不加标识1.21.2变量类型的表示变量类型的表示基本上遵从匈牙利表示法,如下所示: a数组 b布尔型 c字符 e枚举 cb字节计数 cr颜色参考值 n 带符号短整形 i带符号整形 u无符号整形 l带符号长整形 ul无符号长整形 s字符串 sz以零结尾的串 p指针 np近指针 lp长指针 h句柄 fn函数变

3、量 w无符号整形(字 WORD) dw无符号长整形(双字 DWORD) stru 结构体类不加标VARIANT VT 自由变量 BSTR bstr 双字节字符1.31.3变量含义变量含义接近变量含义的英文单词,如 Meter 表示表底,Bill 表示清单。若用多个单词表 示各个单词应用大写字母打头,如 MeterValue 表示表底值。VC 编程规范 V1.0XXXX 公司 版权所有 第 3 页 共 9 页根据以上命名规则,我们对变量 m_szCallingNo 应知道该变量是一个类的数据成 员,该成员是零结尾的字符串,存储的是主叫号码。这样我们就能望文生义,知道该 变量的作用域、类型和含义,

4、便于以后的维护和实际的编程。1.41.4数据库字段变量数据库字段变量用于表示数据库中某一字段值的变量,应与数据库字段名称相同。2 2代码的编制代码的编制2.1编制代码时尽量使用模块化程序设计,每个模块可用一个单独的类来表示以完成一个独立的功能。尽量减少各个模块之间的依赖关系以保持相互的独立性,这样可以提高程序的可读性和代码的可重用性(对于特定的功能块,如 class BitMapDialog形式,尽可能以类的形式提供给其他人或作为公司代码积累) 。2.2在创建一个新的从 MFC 类继承的类时应该用 VC 的类向导 ClassWizard 生成,不能从MFC 继承的类应用 ClassView 生

5、成,这样可通过 ClassWizard 或 ClassView 去管理该类,成员变量、成员函数及消息处理函数也应该通过二者加入,减少了程序的编制量,也提高了程序的可读性。2.3在具体编程时两个不同功能的程序段之间应用一空行隔开以示区别,并且在该功能段前加上该功能段的功能说明,在重要的语句前也要加上说明,提高程序的可读性和可维护性。当注释比较多时用块注释/* */,当注释较少时用单行注释/。结构的成员定义时应作汉字说明。2.4在编制函数时要在该函数前加上该函数的说明,包括函数名称、功能描述、参数说明、返回值说明、修改日志,如下示例:-函数名称:GetAddrress()功能描述: 给定一个字符串

6、,将返回一个地址。首先,它设法直接转换该字符串如果转换失败,将把该字符串当作一个主机名来处理 请注意:gethostbyname()是一个阻塞函数VC 编程规范 V1.0XXXX 公司 版权所有 第 4 页 共 9 页参数说明: LPSTR szHost,字符串形式的地址,如 133.105.8.10 返回值:以无符号长整形数表示的地址。修改日志: 日期 修改原因- - 98/10/22 新建/ unsigned long GetAddrress (LPSTR szHost) LPHOSTENT lpstHost;u_long lAddr = INADDR_ANY;检查是否为非空串if (*s

7、zHost) 检查是否为点分隔的地址字符串lAddr = inet_addr (szHost);如果不是一个地址,把它作为主机名处理*/if(lAddr = INADDR_NONE) if (lpstHost) 成功lAddr = (u_long FAR) (lpstHost-h_addr); else 失败lAddr = INADDR_ANY; return (lAddr); 结束 GetAddrress() VC 编程规范 V1.0XXXX 公司 版权所有 第 5 页 共 9 页2.5程序段中大括符的配对最好能一目了然,如上所示,错落有致。一个程序段的左右大括符必须在同一列, “”应在引导

8、该程序段的语句下一行,且和引导该程序段的语句对齐。配对的大括符中的程序段必须与引导语句缩进一个 TAB,这样能增强程序的可读性和可维护性,减少出错的可能性。 (VC6.0 提供自动格式化的功能选中格式化的区域,按 Alt-F8)2.6对于在程序中多次被引用但其值以后有可能发生变化的常量应定义成宏的形式引用,如对于一个存放文件的目录,由于在程序中要多次引用到,并且随着版本的更新存放路径有可能发生变化,可作如下定义:#define _FILE_DIR “/billing/stand/net”这样你在每次引用该路径时只要引用宏 _FILE_DIR,编程简单,也便于以后的维护。如果你的程序以后有可能移

9、植到 UNIX 上,路径的分隔符最好用/ ,应为在 UNIX 中路径的分隔符是/ ,而在 WIN32 中/及都能作为路径的分隔符,使用/可以和 UNIX 兼容。此外还应注意路径名的大小写,在 UNIX 中路径名和分件名都是大小写敏感的。VC 编程规范 V1.0XXXX 公司 版权所有 第 6 页 共 9 页2.7对于常用的提示信息可加入字符串表,在使用时用 LoadString()调入.2.8用 #define 定义宏时,宏名必须大写。2.9全局变量统一定义在 Application 文件中,要尽可能少用全局变量。2.10 局部变量只有在其生存期才是可见的,即只在某一程序段中出现的变量只能在该

10、程序段中定义。2.11 通常情况下应禁止使用 GOTO 语句,以免破坏程序的结构化。2.12 一个成员函数如果是对类中的成员变量进行操作,不要以参数传递的形式对该成员变量进行操作。3 3工程设计工程设计3.13.1设计通信协议应尽可能分层定义(如分为通信层,业务层) ,预留扩展空间。 (用于定义业务数据包的结构,所有结构成员均采用 char *数据类型,成员变量名、长度、顺序应该与数据库中定义的字段变量名、长度、顺序相一致) 。3.2对于较小的资源文件可以加到工程中,对于较大的资源文件(如 800*600*24bit的位图)应尽量放在工程外部以文件方式引用,避免执行文件过大。3.3对于多个工程

11、中重复用到的函数应提取出来用动态库的形式加以调用,避免重复。(应尽可能采用 COM 形式代替传统的 DLL)。3.4配置信息应采用文件的方式或是注册表形式,由文件维护的信息放在文件中,由安装程序维护的信息放在注册表 (应该尽可能将配置信息写入注册表中,减少 INI 文件的使用) 。VC 编程规范 V1.0XXXX 公司 版权所有 第 7 页 共 9 页3.5每个的工程在提交安装时应提出安装要求,包括涵盖的资源文件,配置文件,模板文件,注册信息等安装需求3.6完成代码编制后应提交测试方法和测试注意事项3.7对于调试用的输出(即后门) ,应在其前后加入 确保发布版(版)没有后门3.8对于同一类型的

12、工程应采用统一风格的界面4 4程序的安全性考虑程序的安全性考虑4.1你应该在类的构造函数中初始化所有引用和非静态数据成员,避免在成员函数中引用未被赋初值的数据成员。4.2指针在用 new 操作符分配了内存之后若不再使用必须用 delete 操作符释放内存,并且指针赋值为 NULL。4.3你不能 delete 空指针,否则会使整个程序崩溃,所以在程序中使用 delete 操作符时应考虑该指针是否有可能为空。4.4如果在子类中分配了内存,应该使基类的析构函数成为虚拟函数。4.5代码的每一次修改都应该经过严格测试。4.6编译器只有在优化编译时/OG才检测未被初始化的变量被引用,所以在开发调试版时也应该偶尔使用 Release 编译。VC 编程规范 V1.0XXXX 公司 版权所有 第 8 页 共 9 页4.7对于多线程的代码应确保所有的子线程退出后才退出主线程,以确保进程的完全释放。

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

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号