完整版华为软件编程规范

上传人:大米 文档编号:564534512 上传时间:2023-03-23 格式:DOC 页数:24 大小:243KB
返回 下载 相关 举报
完整版华为软件编程规范_第1页
第1页 / 共24页
完整版华为软件编程规范_第2页
第2页 / 共24页
完整版华为软件编程规范_第3页
第3页 / 共24页
完整版华为软件编程规范_第4页
第4页 / 共24页
完整版华为软件编程规范_第5页
第5页 / 共24页
点击查看更多>>
资源描述

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

1、北京世纪百合技术有限公司软件编程规范第#页共24页文档编号产品版本受控状态DC-SB-2003-1005V 1.0内部h.tip:/. 1 i lly. net. er产品名称:软件编程规范共页软件编程规范(仅供内部使用)北京世纪百合科技有限公司Beijing Centurial Lily Technology Co.,Ltd.版权所有不得复制文档修改记录版本号日期所改页注记提交人批准人1. 引言41.1 目的41.2 范围42. 规范42.1 文件42.2 版面风格82.3 标识符命名 122.4 函数与宏142.5 代码的可靠性 183. 附录:通用类型的公共定义 23引言1.1目的本规范

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

3、件内容;?头文件预编译开关结束,格式为:#en dif用来和头文件预编译开关的开始对应。例如:以下为ipf_ip.h头文件的内容:/*Copyright (c) Lily Of The Cen tury Tech nology Co., LTD.ALL RIGHTS RESERVEDDescriptio n:/用于详细说明此程序文件完成的主要功能*/#ifndefPFP_H#defi ne _IPF_IP_H北京世纪百合技术有限公司软件编程规范第#页共24页头文件正文#en dif2.1.3头文件的定义要有层次,禁止交叉引用。说明:头文件的层次设置为公共模块、私有模块。头文件的引用次序为下层头

4、文件 引用上层头文件、私有头文件引用公共头文件,声明结构时尤其要注意,不允许出 现交叉引用的情况。示例:如下定义不符合规范头文件isdn_a.h/*Copyright (c) Lily Of The Century Technology Co., LTD.ALL RIGHTS RESERVEDDescriptio n:定义配置数据结构*/#ifndef _ISDN_A_H#defi ne _ISDN_A_H#i nclude“sdn _b.h”typedef struct,ISDN_CONTROL stIsd nCon trol;,ISDN_ CONFIG;#en dif头文件isdn_b.h

5、Copyright (c) Lily Of The Century Technology Co., LTD.ALL RIGHTS RESERVEDDescriptio n:定义控制数据结构*/#ifndef _ISDN_B_H#defi ne _ISDN_B_H#i nclude“sdn_a.h”typedef struct,ISDN_CONFIG stIsd nCon fig;,ISDN_CONTROL;#en dif为了解决上述矛盾,可以将两个结构合并到一个文件中声明2.1.4文件中如果引用系统头文件,必须使用“ “;如果引用自定义的头文件,必须使用“” “和“ ”“。说明:系统头文件是指

6、由编译系统提供的头文件。示例:如下书写不符合规范。#i ncludestdlib.h ”#in clude 应该改作:#include #i nclude“sdn_con fig.h”2.1.5头文件中只能声明变量类型,禁止定义变量。说明:如果在头文件中定义变量,当有多个源文件引用该头文件时,会出现重复定 义的错误。示例:如下头文件是不规范的。头文件isdn_a.h*北京世纪百合技术有限公司软件编程规范第#页共24页Copyright (c) Lily Of The Century Technology Co., LTD.ALL RIGHTS RESERVEDDescriptio n:定义配置

7、数据结构*/#ifndef _ISDN_A_H#defi ne _ISDN_A_Htypedef struct,ISDN_ CONFIG;ISDN_CONFIG g_stlsd nCon fig;#en dif结构变量g_stIsdnConfig不能在头文件中定义,只能在源文件中定义。可以在相应的源文件定义后,头文件作如下改动:ISDN_CONFIG g_stIsd nCon fig;改为extern ISDN_CONFIG g_stIsd nCo nfig;2.1.6头文件的声明顺序,应该有层次感。说明:头文件的声明顺序一般是宏、结构、函数、变量。函数在头文件中声明时开 头可以不加“ ext

8、ern”2.1.7源文件名称一律小写,格式为:子系统名_文件名.c,示例:ipf_ pkt.c表示在IPF子系统的包处理文件。2.1.8源文件必须加注释头。源文件注释头格式为:/*Copyright (c) Lily Of The Cen tury Tech nology Co.,LTD.ALL RIGHTS RESERVEDDescriptio n:/用于详细说明此程序文件完成的主要功能2.2版面风格2.2.1程序块采用缩进风格编写,缩进使用TAB符号,TAB符号规定为4个空格。变量说明之后必须加空行。说明:由开发工具自动生成的代码例外。示例:如下例子不符合规范。void isd n_ln

9、itCo nfig(void) _WORD wCo nfigNum ner;;/program code应如下书写void isd n_ln itCo nfig(void) _WORD wCo nfigNum ner;;/program code2.2.2不允许把多个短语句写在一行中,一行只写一条语句。示例:如下例子不符合规范。wLe ngth = wWidth = 0;或 wLength = 0, wWidth = 0;应如下书写wLe ngth = 0;wWidth = 0;禁止如下写法:int i = j = 0;或 int i = 0,j = 0;应该写作:int i = 0;int

10、j = 0;或int i,j;i = 0;j = 0;do、while、switch、case、default、if、else、for 等语句自占一行,且 if、else语句在同一列。示例1 :如下例子不符合规范。do .; /program code while (pstUser != NULL);应如下书写:do;/program code while (pstUser != NULL);示例2:如下例子不符合规范 while (pstUser != NULL) ;/program code应如下书写:while (pstUser != NULL);/program code示例3:如下例

11、子不符合规范 switch (dwCo un ter) case 1: dwCo un ter+;;/program code break;default:break;应如下书写:switch (dwCo un ter)case 1: dwCo un ter+; ;/program code break;default: break;示例4:如下例子不符合规范 if (pstUser = NULL) retur n;else ;/program code应如下书写:if (pstUser = NULL)return;else;/program code示例5:如下例子不符合规范 for (i = 0;i 10;i+) ;/program code 应如下书写:for (i = 0;i 10;i+);/program code2.2.4函数的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风 格。示例:如下例子不符合规范。int isd n_Con fig(void) _;/ program codereturn 0;应该改为int isd n_Con fig(void) _;/ program codereturn 0;示例:如下例子不符合规范。typedef structWORD wSlot;WORD wPort;ISDN_CONFIG

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

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

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