华为软件编程规范

上传人:工**** 文档编号:477415565 上传时间:2023-08-05 格式:DOCX 页数:10 大小:31.86KB
返回 下载 相关 举报
华为软件编程规范_第1页
第1页 / 共10页
华为软件编程规范_第2页
第2页 / 共10页
华为软件编程规范_第3页
第3页 / 共10页
华为软件编程规范_第4页
第4页 / 共10页
华为软件编程规范_第5页
第5页 / 共10页
点击查看更多>>
资源描述

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

1、文档编号产品版本受控状态DC-SB-2003-1005V内部产品名称:软件编程规范共页软件编程规范(仅供内部使用)北京世纪百合科技有限公司BeijingCenturialLilyTechnologyCo.,Ltd.版权所有不得复制文档修改记录版本号日期所改页注记提交人批准人1. 引言错误!未定义书签。目的错误!未定义书签。范围错误!未定义书签。2. 规范错误!未定义书签。文件错误!未定义书签。版面风格错误!未定义书签。标识符命名错误!未定义书签。函数与宏错误!未定义书签。代码的可靠性错误!未定义书签。3. 附录:通用类型的公共定义错误!未定义书签。1 .引言1.1 目的本规范的目的在于增加源代

2、码的可读性,减少程序员对代码理解上的偏差,使程序员能够编写出可靠的代码,降低代码维护成本。1.2 范围本规范内容涉及范围包括:文件、版面、注释、标识符、变量和结构、函数、宏以及可理解性等。本规范适用于公司开发的所有软件产品。在新软件的编码过程中本规范必须执行。2 .规范2.1 文件2.1.1 头文件的名称一律为小写,格式为“子系统名_文件名.h”。例如:等。2.1.2 头文件的格式如下:注释头,格式参见软件编程规范;头文件预编译开关开始,格式为:#ifndef预编译开关#define预编译开关其中预编译开关格式为:_文件名_H,其中文件名一律大写头文件内容;头文件预编译开关结束,格式为:#en

3、dif用来和头文件预编译开关的开始对应。例如:以下为头文件的内容:/*Copyright(c)LilyOfTheCenturyTechnologyCo.,LTD.ALLRIGHTSRESERVEDDescription:.头文件正文#endif2.1.3 头文件的定义要有层次,禁止交叉引用。说明:头文件的层次设置为公共模块、私有模块。头文件的引用次序为下层头文件引用上层头文件、私有头文件引用公共头文件,声明结构时尤其要注意,不允许出现交叉引用的情况。示例:如下定义不符合规范头文件/*Copyright(c)LilyOfTheCenturyTechnologyCo.,LTD.ALLRIGHTSR

4、ESERVEDDescription:定义配置数据结构*/#ifndef_ISDN_A_H#define_ISDN_A_H#include“”typedefstruct.;ISDN_CONTROLstIsdnControl;.;ISDN_CONFIG;#endif头文件/*Copyright(c)LilyOfTheCenturyTechnologyCo.,LTD.ALLRIGHTSRESERVEDDescription:定义控制数据结构*#ifndef_ISDN_B_H#define_ISDN_B_H#include“”typedefstruct.;ISDN_CONFIGstIsdnConfi

5、g;.;ISDN_CONTROL;#endif为了解决上述矛盾,可以将两个结构合并到一个文件中声明。2.1.4 文件中如果引用系统头文件,必须使用“;如果引用自定义的头文件,必须使用“”“和“”“。说明:系统头文件是指由编译系统提供的头文件。示例:如下书写不符合规范。#include“”#include应该改作:#include#include”2.1.5 头文件中只能声明变量类型,禁止定义变量。说明:如果在头文件中定义变量,当有多个源文件引用该头文件时,会出现重复定义的错误。示例:如下头文件是不规范的。头文件I*Copyright(c)LilyOfTheCenturyTechnologyCo

6、.,LTD.ALLRIGHTSRESERVEDDescription:定义配置数据结构*/#ifndef_ISDN_A_H#define_ISDN_A_Htypedefstruct.;ISDN_CONFIG;ISDN_CONFIGg_stIsdnConfig;#endif结构变量g_stIsdnConfig不能在头文件中定义,只能在源文件中定义。可以在相应的源文件定义后,头文件作如下改动:ISDN_CONFIGg_stIsdnConfig;改为externISDN_CONFIGg_stIsdnConfig;2.1.6 头文件的声明顺序,应该有层次感。说明:头文件的声明顺序一般是宏、结构、函数、

7、变量。函数在头文件中声明时开头可以不加“extern”2.1.7 源文件名称一律小写,格式为:子系统名_文件名.c,示例:ipf_表示在IPF子系统的包处理文件。2.1.8 源文件必须加注释头。源文件注释头格式为:/*Copyright(c)LilyOfTheCenturyTechnologyCo.,LTD.ALLRIGHTSRESERVEDDescription:.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.).,.,.IP_TRACEROUTE;typedefunion.;ICMP_PKT2.1.9 全局变量命名的具体格式是:前缀+下划线+子系统名+下划线+字符串,其中

8、前缀为小写的“g”,子系统名称全部小写,字符串由一个或多个单词组成,每个单词首字母大写,其他字母小写。示例:g_icmp_TraceRouteQueue、g_ospf_InterfList等。2.1.10 消息宏定义的采用一下格式:前缀+下划线+字符串+下划线+后缀。其中前缀采用小写的“mm,字符串标记消息宏的具体含义,由一个或多个单词组成,每个单词首字母大写,其他字母小写,后缀为XXXtoYYY,表示消息的传送方向,XXX表示源子系统名,YYY为目的子系统名,全部用大写字母表示。示例:mm_AddRoute_BGPtoRTM丽从BGP议发送到路由管理实体的增加一条路由的消息,mm_ShowI

9、pRoute_CLItoRTMG示从CLI发送到路由管理子系统的要求显示路由表的消息。2.2 函数与宏2.2.1 对函数的返回值要仔细、全面地处理。说明:对提供返回值的函数,尤其是接口函数,其返回值必须检查。示例:以下函数是不规范的。voidisdn_SendMessage(void).;.);.;.);.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;/programcodereturnpstNiCell;2.2.2 不要使用难懂的技巧性很高的语句。说明:高技巧语句不等于高效率的程序,实际上程序的效率关键在于算法。示例:如下表达式,考虑不周就可能出问题,也较难理解。

10、*pbyState+=1;*+pbyState+=1;应分别改为如下。*pbyState+=1;pbyState+;/此二语句功能相当于*pbyState+=1;+pbyState;*pbyState+=1;/此二语句功能相当于*+pbyState+=1;3.附录:通用类型的公共定义1、常用数据类型的定义typedefintINT32;typedefunsignedintUINT32;typedefshortINT16;typedefunsignedshortUINT16;typedefcharINT8;typedefunsignedcharUINT8;typedefsignedlongLONG;typedefunsignedlongDWORD;typedefunsignedshortWORD;typedefunsignedcharBYTE;typedefunsignedcharBOOLEAN;当使用无符号数时,应该优先使用BYTEWORDDWORD宏定义。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 营销创新

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