1 / 24
文档名称:

软件编程低级错误变量.pptx

格式:pptx   大小:422KB   页数:24页
下载后只包含 1 个 PPTX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

软件编程低级错误变量.pptx

上传人:wz_198613 2020/2/27 文件大小:422 KB

下载得到文件列表

软件编程低级错误变量.pptx

相关文档

文档介绍

文档介绍:2020/2/7公司常见软件编程低级错误:变量C语言软件编程规范工作组前言这套材料作为编程规范的辅助材料,帮助大家理解编程规范背后的原理。C和C++语言是我司的主流编程语言,然而C/C++具有很多强大的语言特性,从而导致C/C++非常复杂,使得代码更容易出现BUG、难以阅读和维护。业界知名的编程规范都对C/C++容易出现问题的语言特性进行管理。例如MISRA(汽车工业软件可靠性联合会)制定的1998版的MISRAC规范指出,一些在C看来可以接受,却存在隐患的地方有127处之多。2004版的MISRAC规范将针对C语言的规则增加到了141条。对于程序员来说,能工作的代码并不等于“好”代码。“好”代码的指标很多,包括可读性、可维护性、可移植性和可靠性等。出现网上问题的代码,大多数是不良编程习惯引起的。不遵守编程规范的代码,往往也是最不可靠的代码。本胶片收集了常见的变量部分案例,给出了相应的纠正措施。对应的编程规范:在首次使用前初始化变量,初始化的地方离使用的地方越近越好;明确全局变量的初始化顺序,避免跨模块的初始化依赖;防止局部变量与全局变量同名;尽量减少没有必要的数据类型默认转换与强制转换。指针初始值错误【问题描述】M设备升级到××连接的网元都会发生频繁复位【问题定位】指针m_BoardObject没有申请内存,但赋值为1。后续程序执行时,判断m_BoardObject不等于NULL,于是处理X号板业务。但实际上产品并没有安装X号板,导致系统复位。【纠正措施】指针m_BoardObject没有使用时,赋初值为NULL。【举一反三】开发人员处理指针时,通常认为非空指针是合法的,然后就可能调用它。绝对不要写作违背大家习惯的代码。变量在某些条件下没有初始化【问题描述】在设备增加对象到最大值时,系统出现段错误【问题定位】代码如下:VOS_UINT32ulSlotIndex;.......if(MAX_STACK_CAP>m_ulThirdKeyMax){pstSlotStru=(SLOT_STRU*)(m_pucSlotStru+ulSlotIndex*m_ulSlotStruSize);if(VOS_NULL_PTR!=pstSlotStru->apObj[ulThirdKey]){returnERROR_PARC_TABLE_OBJ_ALREADY_EXIST;}pstSlotStru->apObj[ulThirdKey]=pObj;++m_ulObjNum;++pstSlotStru->ulObjNum;}elseif(0==ulThirdKey)//如果不是索引,同时第三级关键字为0,那么不用分配槽表项{ulSlotIndex=m_astSubrack[ulSubrackNo].aulSlotIndex[ulSlotNo];.......}pstSlotStru->apObj[ulSlotIndex]=0;见红色部分代码,我们可以发现在第一个if中,ulSlotIndex没有被赋值,还是维持初始值VOS_NULL_LONG。最后用这个去访问数据,结果出现踩内存结构成员没有初始化(1)【问题描述】位置登记成功后,LM漫游的用户类型变成了区域漫游类型【问题定位】代码如下:structTProfileChangedInd{    unsignedcharprofile:1; //1:表示被修改0:没有修改  unsignedcharwinService:1;unsignedcharmwnCount:1;    unsignedcharreserved:5; };((TProfileChangedInd*))->profile=True;由于只对该结构的profile位进行了赋值,就更新数据库,该结构的其他位的值取了随机值,导致用户的签约类型变化。【纠正措施】将结构的其他成员赋初始值为0,代码如下:*=0;((TProfileChangedInd*))->profile=True;结构成员没有初始化(2)【问题描述】HFSSA2到HFAIP2局向接通率凌晨时候偏低【问题定位】代码如下:ediDspInfo[].m_dwNMEntityId=;ediDspInfo[].m_btValid=1;ediDspInfo[].m_btDisplayFormat=;发现问题是edi

最近更新

2022年人教版六年级科学下册期末模拟考试附答.. 6页

2022年部编人教版六年级道德与法治下册期末考.. 5页

2022新人教版三年级下册《道德与法治》期末试.. 5页

一年级道德与法治下册期末考试一 5页

人教版六年级下册《道德与法治》期末测试卷及.. 6页

小学一年级道德与法治下册期末测试卷及答案【.. 5页

教科版六年级科学下册期末试卷及答案【完整版.. 5页

四川省二中国旅游地理YYY公开课一等奖课件赛课.. 59页

新教科版五年级科学下册期末考试及答案【汇总.. 6页

最新人教版三年级下册《道德与法治》期末考试.. 5页

最新人教版四年级语文下册期末考试题及答案免.. 7页

推荐:2019入党个人自传范文 6页

统编版四年级下册《道德与法治》期末考试及答.. 5页

2025年度包车服务合同范本及法律风险提示 15页

2025年度二零二五年度海洋工程土方回填与护岸.. 51页

2025年度二零二五年度城市公园园林景观工程监.. 50页

2025年度个人劳动合同模板创新研发与推广合同.. 17页

2020—2021年人教版一年级数学上册期中考试题.. 5页

2020—2021年人教版三年级语文上册期末测试卷.. 7页

主题班会生命的意义公开课一等奖课件赛课获奖.. 61页

2020—2021年部编人教版三年级语文上册期末考.. 7页

2020—2021年部编版一年级语文上册期中考试题.. 4页

2020—2021年部编版二年级数学上册期中考试(汇.. 6页

2020—2021年部编版四年级语文上册期末模拟考.. 7页

2020年一年级语文上册二单元试题及答案最新(二.. 10页

中学语法讲座短语公开课一等奖课件赛课获奖课.. 23页

2020年人教版一年级数学上册期末提升练习题及.. 12页

2020年人教版二年级数学上册四单元练习卷及答.. 53页

感染性疾病科岗位职责、工作制度与流程 6页

中国地理概况复习公开课一等奖课件赛课获奖课.. 75页