(完整版)华为软件编程规范

2、.183.附录:通用类型的公共定义.23北京世纪百合技术有限公司软件编程规范第4页共24页引言1.1目的本规范的目的在于增加源代码的可读性,减少程序员对代码理解上的偏差,使程序员能够编写出可靠的代码,降低代码维护成本。1.2范围本规范内容涉及范围包括:文件、版面、注释、标识符、变量和结构、函数、宏以及可理解性等。本规范适用于公司开发的所有软件产品。在新软件的编码过程中本规范必须执行。规范2.1文件2.1.1头文件的名称一律为小写,格式为“子系统名_文件名.h”。例如:ipf_protocol.h等。头文件的格式如下:注释头,格式参见软件编程规范;头文件预编译开关开始,格式

7、pyright(c)LilyOfTheCenturyTechnologyCo.,LTD.ALLRIGHTSRESERVEDDescription:定义配置数据结构*/#ifndef_ISDN_A_H#define_ISDN_A_Htypedefstruct,ISDN_CONFIG;ISDN_CONFIGg_stlsdnConfig;#endif结构变量g_stIsdnConfig不能在头文件中定义,只能在源文件中定义。可以在相应的源文件定义后,头文件作如下改动:ISDN_CONFIGg_stIsdnConfig;改为externISDN_CONF

9、规范第8页共24页2.2版面风格2.2.1程序块采用缩进风格编写,缩进使用TAB符号,TAB符号规定为4个空格。变量说明之后必须加空行。说明:由开发工具自动生成的代码例外。示例:如下例子不符合规范。voidisdn_lnitConfig(void)_WORDwConfigNumner;;/programcode应如下书写voidisdn_lnitConfig(void)_WORDwConfigNumner;;/programcode2.2.2不允许把多个短语句写在一行中,一行只写一条语句。示例:如下例子不符合规范。wLength=wWidth=

10、0;或wLength=0,wWidth=0;应如下书写wLength=0;wWidth=0;禁止如下写法:inti=j=0;或inti=0,j=0;应该写作:inti=0;intj=0;或inti,j;i=0;j=0;do、while、switch、case、default、if、else、for等语句自占一行,且if、else语句在同一列。示例1:如下例子不符合规范。do.;/programcodewhile(pstUser!=NULL);应如下书写:do北京世纪百合技术有限公司软件编程规范第9页共24页;/pr

11、ogramcodewhile(pstUser!=NULL);示例2:如下例子不符合规范while(pstUser!=NULL);/programcode应如下书写:while(pstUser!=NULL);/programcode示例3:如下例子不符合规范switch(dwCounter)case1:dwCounter+;;/programcodebreak;default:break;应如下书写:switch(dwCounter)case1:dwCounter+;;/programcodebreak;default:brea

12、k;示例4:如下例子不符合规范if(pstUser=NULL)return;else;/programcode应如下书写:if(pstUser=NULL)return;else;/programcode示例5:如下例子不符合规范for(i=0;i10;i+);/programcode应如下书写:for(i=0;i4)&OxFO)2.3.3函数的命名为:前缀+下划线+字符串。其中前缀为全小写的子系统名称,字符串由一个或多个单词组成,每个单词首字母大写,其他字母小写。示例:voidMsgCreate(void);voidicmp_PktRecv(v

13、oid);调试用的编译开关是开头为下划线的全大写字符串,具体格式是:下划线+DEBUG+子系统名称+下划线+名称。示例:_DEBUG_IPF_IP_PACKET、_DEBUG_TCP_OPTION等。结构联合类型命名规则为:子系统名称+下划线+结构名称、子系统名称+下划线+联合名称,其中所有字母大写。示例:typedefstructIP_TRACEROUTE;typedefunionICMP_PKT;2.3.6全局变量命名的具体格式是:前缀+下划线+子系统名+下划线+字符串,其中前缀为小写的“g”,子系统名称全部小写,字符串由一个或多个单词组成,每个单词首字母大写,其他字母小写。示例

14、:gcmp_TraceRouteQueue、g_ospf_InterfList等。2.3.7消息宏定义的采用一下格式:前缀+下划线+字符串+下划线+后缀。其中前缀采用小写的“mm”,字符串标记消息宏的具体含义,由一个或多个单词组成,每个单词首字母大写,其他字母小写,后缀为XXXtoYYY,表示消息的传送方向,XXX表示源子系统名,丫丫丫为目的子系统名,全部用大写字母表示。示例:mm_AddRoute_BGPtoRTMGT表示从BGP协议发送到路由管理实体的增加一条路由的消息,mm_ShowIpRoute_CLItoRTMGT表示从CLI发送到路由管理子系统的要求显示路由表的消息。2.

15、4函数与宏2.4.1对函数的返回值要仔细、全面地处理。说明:对提供返回值的函数,尤其是接口函数,其返回值必须检查。示例:以下函数是不规范的北京世纪百合技术有限公司软件编程规范第15页共24页voidisdn_SendMessage(void)_;/programcodeMsgPost(.);/发送消息应该改作voidisdn_SendMessage(void)_INT32iPost;;/programcodeiPost=MsgPost(.);/发送消息if(iPost=OK);/处理代码else;/处理代码2.4.2接口函数的输入参数(尤其是指针和数组

16、下标)、非输入参数的合法性必须检查。说明:函数的输入主要有两种:一种是参数输入;另一种是非参数输入,包括全局变量、数据文件等,这些参数都需要作检查。示例:下函数的实现不符合规范。RESULTisdn_Receive(NI_CELL*pstCell,SK_BUF*pstSkBuf);/接收数据代码returnOK;应改作以下写法。RESULTisdn_Receive(NI_CELL*pstCell,SK_BUF*pstSkBuf)if(pstCell=NULL)|(pstSkBuf=NULL)returnFALSE;/接收数据代码returnOK;北京世纪

17、百合技术有限公司软件编程规范第16页共24页2.4.3禁止把函数的参数作为工作变量。说明:需要做改变的参数,应该先用局部变量代之,最后再将该局部变量的内容赋给该参数。示例:下函数的实现不符合规范。BOOLEANisdn_SumData(WORDwNumber,WORD*pwData,WORD*pwSum)_WORDwCount;if(pwData=NULL)|(pwSum=NULL)returnFALSE;*pwSum=0;for(wCount=0;wCountwNumber;wCount+)*pwSum+=pwDatawCou

18、nt;/pwSum成了工作变量,不规范returnTRUE;应改作以下写法。BOOLEANisdn_SumData(WORDwNumber,WORD*pwData,WORD*pwSum)_WORDwCount;WORDwSumTemp;if(pwData=NULL)|(pwSum=NULL)returnFALSE;wSumTemp=0;for(wCount=0;wCountba:b#defineMAx(a,b)(aba:b)#defineMAX(a,b)(a)(b)(a):(b)正确的定义

19、应为:#defineMAX(a,b)(a)(b)(a):(b)2.4.7将宏所定义的多条表达式放在大括号中。示例:下面的定义不规范#defineISDN_INIT_VALUE(a,b)a=0;b=0;正确的用法应为:#defineISDN_INIT_VALUE(a,b)a=0;b=0;2.4.8使用宏时,不允许参数发生变化。示例:如下用法导致错误。#defineMAX(a,b)(a)(b)(a):(b)iResult=MAX(iRx+,iTx);将被预处理器解释为iResult=(iRx+)(iTx)(

20、iRx+):(iTx);此时如果输入iRx=6;iTx=5;代码执行结果iResult=7,此时iRx为8应该改作如下用法:iResult=MAX(iRx,iTx);iRx+;voido北京世纪百合技术有限公司软件编程规范第18页共24页2.5代码的可靠性2.5.1系统运行之初,要初始化所有本系统的全局变量,禁止未经初始化的全局变量被引用。说明:使用未初始化的数据,容易使系统进入混乱状态。示例:以下的全局变量如果没有在系统运行时初始化,在被函数使用时会出错ISDN_CELL*g_pstlsdnCellISDN_MAX_CELL_NUM;voidisdn_Sh

21、owChannel(WORDwSlot,WORDwPort)ISDN_CELL*pstIsdnCell=0;inti;for(i=0;iwSlot=wSlot)&(pstIsdnCell-wPort=wPort)break;;/otherprogramcode2.5.2申请内存之后,应该立即检查指针值是否为NULL?(防止使用指针值为NULL的内存)说明:申请内存时,如果申请失败,应该避免使用该指针。必须使用if(p=NULL)或if(p!=NULL)进行防错处理。2.5.3禁止将未被初始化的内存作为零值使用。北京世纪百合技术有限公司软

22、件编程规范第19页共24页说明:创建的数组或动态申请的内存,其初始值是不确定的,不能当作零处理。示例:以下代码是不规范的。voidisdn_Checkle(BYTE*pbyle,WORDwleLen)WORDwTempLen;/wTempLen未初始化,其初始值不一定为0while(wTempLenwIeLen).;/otherprogramcodewTempLen+=2;应作如下改写:voidisdn_Checkle(BYTE*pbyIe,WORDwIeLen)WORDwTempLen;wTempLen=0;while(wTempLe

23、nMAX_LENGTH)returnLENGTH_ERROR;/忘了释放pbyBuf;/otherprogramcode应改为如下。intExampleFunction(BYTEbyLen)BYTE*pbyBuf;pbyBuf=(BYTE*)malloc(MAX_LENGTH);;/programcode,includecheckpBufifornotNULLif(byLenMAX_LENGTH)free(pBuf);/退出之前释放pbyBufreturnLENGTH_ERROR;;/otherprogramcode2.5.12在s

24、witch的处理程序块中,必须有default语句;并且每个case语句都要有对应的break。说明:如果一个case下的处理语句需要调用下一个case的处理语句,可以将下一个case的处理语句copy过来。示例:以下写法是不规范的switch(wEvent)case1:isdn_SendEvent(wEvent);case2:wEvent+;break;default:北京世纪百合技术有限公司软件编程规范第22页共24页break;应该改为:switch(wEvent)case1:isdn_SendEvent(wEvent);wEvent+;break;case2:wEvent+;break;default:break;2.5.13不要滥用goto语句。说明:goto语句会破坏程序的结构性,除非确实需要,不要使用goto语句。2.5.14留心程序机器码大小(如指令空间大小、数据空间大小、堆栈空间大小等)是否超出系统有关限制。2.5.15使用显式的数据类型转换,避免让编译器进行隐式的数据类型转换。说明:使用显示的数据转换一方面增加可读性,有利于代码的维护;另一方面避免隐式的数据类型转换引起的编译告警。示例:以下的书写不符合规范NI_CELL*isdn_Load(void)NI_CELL*pstNiCell

THE END
1.T8300新华字典下载华为T8300新华字典4.0.8免费下载华为T8300新华字典简介 《新华字典》第12版,由商务印书馆官方出版、中国社会科学院语言研究所编修。新增“工具书云平台”模式,除收录《新华字典(第12版)》外,融合《现代汉语词典(第7版)》《古汉语常用字字典(第5版)》《古代汉语词典(第2版)》等,共计24部权威字典、词典,旨在提供综合性汉语学习服务。唯一正版《https://sj.zol.com.cn/huawei/t8300/detail_20554.shtml
2.语音语言类服务开发应用开发HarmonyOS机器学习服务华为机器学习服务提供机器学习套件,为开发者使用机器学习能力开发各类应用,提供优质体验。 英语 标准男声: 标准女声: 凯瑟琳: Huawei Machine Learning Service provides machine learning suites for developers to develop various applications using machine learning capabilities, providing excellent experience. 法语 女声https://developer.huawei.com/consumer/cn/doc/hiai-Guides/ml-text-to-speech-harmonyos-0000001246896039
3.www.zhxdfpr.cn/xxxr65520139《特种兵归来4替身疑云》电影全集免费在线观看完整版汉语 精品免费国产一区二区-国产精品综合久久久-国产91 《一体验区试看120秒》古装仙侠 65.17MB 18黄色软件下载3.0.3免费大全华为 86.69MB 95%好评123人) 精品视频一区丝袜免费 男同桌伸进动漫 图片视频小说激情 38.68MB 08%好评49人) 东京操Bhttp://www.zhxdfpr.cn/xxxr65520139
4.jiaofei.51dfh.com/xxxr89275393.htmV7.9.9 ,免费观看中文有码视频教程下载 免费看美女久久久 内射频视频下载软件 免费看操女秘书美ox黄片中国汉语版少妇 昂~哈c到高c了 全国探花175在线播放 129.36MB 31好评 2021的三?片你好编程林耿亮百度云 49.49MB 80%好评75人) 又黄又爽又刺激,在线视频免费观看 骚穴抽插淫荡爽 http://jiaofei.51dfh.com/xxxr89275393.htm
5.2468.hx武汉大学计算机学院软件工程系副教授、鸿蒙编程课教师赵小刚对中新经纬表示,此前App多适配单屏,部分适配双屏,未有适配三屏的。"三折叠手机展开比例接近平板,也并不是说适配平板的App完全就适配三折叠手机。除了考虑第三块屏显示什么,适配三折叠手机的App同时也要适配直板以及双屏的显示问题,这会增加App的适配工作。"http://2468.hx-r.com/xxxr24955947.html
6.haochang.jxcrm.net/xxxr82237634.htm畅享网络编程乐趣——9.1免费版软件下载及安装指南_南风窗 手机看啪啪片 亚洲AV大帝 日比艹比网 不盖被子打扑克。 伊人电影干 原神旅行者让纳西妲怀孕 操南方女大逼 18岁以下勿进app下载 人妻和按摩师激情 《老湿机》高清不卡在线观看_?重庆华龙网 奇米第四色伊人777在线视频 极品美女销魂一区二区三区http://haochang.jxcrm.net/xxxr82237634.htm
7.编程狮下载2024安卓最新版手机app官方版免费安装下载● 超400万用户都在用的编程学习App;● 极具特色的“编程微课”+“编程实战”,给你不一样的编程学习方式;W3Cschool『编程狮』是一款专业的编程入门学习App,致力于帮助初学者入门及提升程序员开发效率,目前已提供1000+常见编程语言教程和免费技术文档,涵盖前端开发/Python/Java/PHP等热门编程语言。学编程,从这里开始https://m.wandoujia.com/apps/7599527/
8.华为的软件编程规范总则和范例资料免费下载本文档的主要内容详细介绍的是华为的软件编程规范总则和范例资料免费下载包括了:1 排版 ,2 注释 ,3 标识符命名,4 可读性 ,5 变量、结构 ,6 函数、过程,7 可测性 ,8 程序效率,9 质量保证 ,10 代码编辑、编译、审查,11 代码测试、维护 ,12 宏。https://www.elecfans.com/soft/6/2019/20190628974167.html
9.汉语编程语言其他编程语言华为云帮助中心为你分享云计算行业信息,包含产品介绍、用户指南、开发指南、最佳实践和常见问题等文档,方便快速查找定位问题与能力成长,并提供相关资料和解决方案。本页面关键词:汉语编程语言。https://support.huaweicloud.com/topic/484335-1-H
10.华为仓颉编程语言官方appv1.0最需网2022-05-08发布者:杨灿梅大小:下载:0 文件大小: 软件介绍 软件介绍 华为仓颉编程语言,这里为大家提供的是非常好用的语言编程软件,拥有的是全新的操作体验。采用的是全新的技术,给大家的使用提供了很大的便利。在线是可以更好的学习编程知识的,这里的内容丰富,学习体验是非常好的! https://www.zuixu.com/down/21578.html
11.华为自研编程语言仓颉全中文编程,我是不信的,不怕打脸IDE也出来了,想必有不少朋友都用过,这些尚且都不是中文——设置开发界面都没法调成中文——何况是即将推出的编程语言?怎么可能会是汉字编程嘛!当然机智客知道非计算机专业或者非技术爱好者,几乎不可能看我们技术人或者行业人公开的文章、视频或者教程的,所以外行觉得欢迎汉语编程,坚信华为仓颉全中文编程,情有可原。 https://www.jianshu.com/p/93e6d173ea08
12.华为C语言编程规范C语言编程规范资源《华为C语言编程规范与范例解析》 在软件开发领域,编程规范是提升代码质量、维护性和团队协作效率的重要工具。华为作为全球知名的科技公司,对于编程规范有着严格的执行标准,尤其是对于C语言这样的基础编程语言。 华为C语言编程规范[汇编].pdf 浏览:138 https://download.csdn.net/download/jcyd_123/10739488
13.DevEcoStudio华为开发者工具v2.0.8.203免费版下载DevEco Studio华为开发者工具 v2.0.8.211软件编程 软件等级: 软件大小:626.91MB 支持语言:简体中文 授权方式:免费版 软件分类:编程软件/软件编程 官网链接: 更新时间:2024-11-12 10:00:04 运行环境:WinXp,Win2003,WinVista,Win 7,Win 8,Win 10,x64 https://wp.crsky.com/soft/221744.html
14.phu华为测试软件,phu测试软件下载码农集市专业分享IT编程学习华为路测软件GENEX+PROBE3.5+Assistant3.5.rar_phu华为测试软件,phu测试软件下载 [o**情人上传251.73 MB文件格式rar华为 华为路测软件GENEX+PROBE3.5+Assistant3.5.rar (0)踩踩(0) 所需:30积分https://www.coder100.com/index/index/content/id/1133850
15.阮一峰的网络日志FeedsAnywhereShow Popular Find a Feed ? Show Previews ? Show Combined View ? Show Compact View ? Show Title View -Show Popular -Find a Feed Navigation j/kselects the next/previous item in the list n/pin title view, selects the next item without opening it https://feedsanywhere.com/feed/39994
16.压大小单双平台赚钱软件下载安卓版手机代码编程软件下载 2023智学网成绩查询入口手机版 可以联机的赛车游戏有哪些?多人联机赛车游戏推荐 autodesk手机软件有哪些?autodesk手机版下载 微信抢红包软件下载 手机测网速哪个软件最准确 低内存吃鸡手游有哪些?低内存吃鸡游戏大全 手机跑分app下载 掌阅小说app下载 优酷app官方下载 我本千金下载安http://www.yizhuqk.com/
17.华为软件编程规范和范例[ 华为软件编程规范和范例 ] 〔一〕===[排版] ]=== 〔二〕===[注释]=== http://m.doc88.com/p-5886492066737.html
18.GitHubBernardjue/GitHubChineseTopApproach-NOTES 《计算机网络-自顶向下方法(原书第6版)》编程作业,Wireshark实验文档的翻译和解答。(text augment, data enhance),同义句同义词生成,句子主干提取(mainpart),中文汉语短文本相似度,文本EvilCult/moviecatcher 电影美剧搜索及在线观看离线下载软件,集成热门资源站,借助百度云实现离线下载以及https://github.com/Bernard-jue/GitHub-Chinese-Top-Charts
19.乐发II下载入口APP下载手机代码编程软件下载 墨迹天气15天天气预报免费下载 商务聊天软件有哪些?商务社交软件app推荐下载 户外露营app下载安装 智慧人社系列软件有哪些 有哪些优秀的冥想app?冥想app推荐免费下载安装手机版 手机文字识别扫描软件哪个好?文字识别软件免费下载 网速测试软件有哪些?手机网速测试软件推荐 微信抢红包软件下载http://test3.qd163.cn/
20.统信UOS系统运维及问题处理手册(20241210更新)**解决方法一:**开启开发者模式,安装软件时就可以不用签名。 **解决方法二:**拨打统信系统售后电话,说需要添加一下数字签名,客服会让你把软件发她邮箱,添加好数字签名后她会发你邮箱(建议下载软件时从统信官网上下载,或者统信应用商店)。 3、华为(海思990架构)L410笔记本系统升级(激活等)方法 http://it.en369.cn/jiaocheng/1733919987a1238703.html