- 1、本文档共24页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言中级教程 防错-18ppt课件
沈阳东软软件股份有限公司 NEU-APN IA事业部 (机密) 防错必要性及其方法 课程主要内容 防错的必要性、方法 问题与习题 主要内容 1.1 防错及其意义 1.2 把防错作为工作习惯 1.3 防错常识 1.4 错误预防 1.1 防错及其意义(1) 防错 这里讨论的问题基本上是代码防错。 防错实施者是编程人员,而非测试人员; 防错意义 提高产品质量 减少(不是消灭)Bug的数量 增加程序健壮性 1.1 防错及其意义(2) 提高开发效率 通过防止错误的发生,减少检查排错的时间;一般来讲防错投入的费用要远远低于排错的投入(投入教育一元钱,远远胜过投入监狱10元钱。) 一个错误不仅仅会给(产生这个问题的)开发者的工作增加阻碍,而且往往会导致整个团队工作的停滞;因此,错误的及早避免和发现(尽可能在开发时就避免),会对提高团队的开发效率产生积极意义,还会提高团队的开发士气。 降低开发风险 避免因质量问题带来的工期延期; 避免项目成本超出预算; 1.2 把防错作为工作习惯(1) 你的代码有容错处理吗? int AAA( char *p) { char c; …. *p =c; ….. } 如果参数p传入是空指针,程序运行会崩溃。正确的处理应该是: int AAA( char *p) { char c; if (NULL == p) return ERR_NULL; …. *p =c; } 1.2 把防错作为工作习惯(2) 你的代码存在内存泄漏吗? ? char*????AllocStrFromHeap( int?len )?{????????if?(?len?=?0?) ?return?NULL;?????????return?(?char*?)?malloc(?len?);?}? 这是一个内存分配的子函数; 这个函数本身没有过错,但在程序 (不是本函数)退出前若不释放堆空间,就会造成内存泄漏。 1.2 把防错作为工作习惯(3) 不要忽略warning 常见的warning包括: 声明了未使用的变量; 使用了隐晦声明的函数。(也许这个函数在别的C文件中,编译时会出现这种警告,你应该在使用前用extern关键字声明这个函数); 没有转换一个指针。(例如malloc返回的指针是void的,你没有将之转成实际类型。在使用前明显地转换一下吧); 类型向下转换。(例如:float?f?=?2.0;?这种语句是会报警的,编译会告诉你正试图把一个double转成float,还是在2.0后面加个 f 吧); ...... 不管怎么说,编译器的Warning不要小视,其中可能为错误埋下了隐患。 1.2 把防错作为工作习惯(4) 避免别人使用自己的代码产生错误 你的程序有注释吗? 养成写注释的习惯,这是每个程序员所必须做的工作。一个几千行的程序,居然没有一行注释,这就如同在没有路标的公路上驾车一样。 为了方便别人阅读,请清晰地为代码写上注释。——与人方便,自己也方便。 1.2 把防错作为工作习惯(5) 避免别人使用自己的代码产生错误 程序对外接口函数有详细的说明? 为了方便别人调用你的函数,避免错误,函数说明应该包括: 函数的功能 调用函数的时序:如有时序图最好,至少应该描述是同步还是异步 函数的参数说明:是输入还是输出、有效输入范围等 返回值的详细说明 相关函数的其他说明 1.2 把防错作为工作习惯(6) 避免自己使用别人的代码产生错误 调用函数,判断返回值了吗? FILE * fp; fp = fopen(BMP3.SD,rb+); i=fread(a, 100, 1, fp); 如果fopen不成功,程序的运行结果会如何? 正确的处理应该: FILE * fp; fp = fopen(BMP3.SD,rb+); if (fp == NULL) { return ERR; } i=fread(a, 100, 1, fp); 1.2 把防错作为工作习惯(7) 修改别人程序的良好习惯: 维护别人的程序时,请不要主观臆断地删除或修改。 修改别人的程序时,也不要删除别人的程序。 如果你觉得程序有所不妥,为了可以恢复,请注释掉,然后添加自己的处理程序,让别人看到你修改程序的意图和步骤。毕竟,你不可能100%的把握别人的意图。请不依赖于CVS或是VSS。下面代码是
您可能关注的文档
- 2011红鹤沟通青岛高端项目推广策略ppt课件.ppt
- 2011高考现代文阅读___如何分析文章标题ppt课件.ppt
- 2011首次期货投资分析真题讲解ppt课件.ppt
- 2011年神经本科(5年制).ppt
- 2012届浙江湘教版学海导航新课标高中总复习(第1轮)地理:模块1必修1第3章第4课常见的热力环流及其成因2.ppt
- 2012大学英语四级考试做题技巧.ppt
- 2011王立福的软件工程课件(自学考试)ppt课件.ppt
- 2012届浙江湘教版学海导航新课标高中总复习(第1轮)地理:模块2必修2第4章第1课_人类面临的主要环境问题ppt课件.ppt
- 2011珠江珠纺城推广方案ppt课件.ppt
- 2012年中考复习建议.ppt
最近下载
- 明代故宫、孔府旧藏服饰.pdf VIP
- 中考物理总复习《力学》专项练习题(附答案).docx
- 2025年春新人教PEP版英语三年级下册课件 Revision Going to a school fair-第2课时.pptx
- 春节文艺活动劳务合同6篇.docx
- 局领导班子成员之间相互批评意见清单(6).doc VIP
- 2025年1月必威体育精装版版化危为安ccsc每日答题题库和配套答案(持续更新中).docx
- 应用数理统计基础课后习题答案(全)-庄楚强.pdf
- 《民法典》无效合同处理规则适用要点解析.docx
- 农商银行董事会换届工作报告(三年工作总结及下届工作思路).docx
- 2023-2024学年江苏省盐城市高二下学期6月期末考试化学试题(解析版).docx
文档评论(0)