零点起飞学C之有错也不怕错误和.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第23章有错也不怕—错误与调试 程序没有按照程序员的预期执行或意外中断时,就产生 了错误。调试就是查找错误发生点、错误原因的过程。程 序错误是编程实践中常见的问题,既使最有经验的程序员 也不能保证一次就编写出没有任何错误的程序。编写程序 的大部分时间实际上就是在进行调试,本章将向读者详细 讲解错误和错误的调试,通过本章的学习,读者可以识别 程序中的错误,并学会调试和修改这些错误的能力,从而 编写出高质量的代码 23.1什么是错误 程序错误常直接写做英文的bug,也称为缺陷、臭虫。它 指在软件运行中因为程序本身有错误而造成的功能不正常、 死机、数据丢失、非正常中断等现象 将程序错误称为bg是由于计算机发展早期的一件事情 二战期间,哈珀中尉带领他的小组制造了一台称为“马克 型”的计算机。一天,马克三型突然死机了。技术人员 试了很多办法,最后定位到第70号继电器出错。哈珀观察 这个出错的继电器,发现一只飞蛾躺在中间,已经被继电 器打死。他小心地用镊子将蛾子夹出来,用透明胶布贴到 “事件记录本”中,并注明“第一个发现虫子的实例” 此后,计算机界就习惯将计算机的各种非正常事件都称为 按照错误的发生时间不同,可以将错误分成语法错误、链 接错误和运行时错误。其中,语法错误发生在编写代码时」 也叫编译时错误。链接错误发生在将程序代码链接为可执 行程序的过程中。运行时错误则发生在运行程序的过程中 3种错误的排查和解决难度依次为语法错误、链接错误和 运行时错误。有时,程序虽然没有发生上述3种错误,但 是运行结果却不是预期的,这时就发生了逻辑错误。逻辑 错误往往是算法设计错误造成的,本章主要讨论前3种错 误类型。 232错误的种类 为了处理错误,首先要搞清楚错误的内容和发生时机。这 些错误大多发生在编写源代码,并将源代码转换成可执行 程序的过程中。下面详细讲解几种常见的错误 2321语法错误 语法错误发生在编写源代码时,指程序中包含了违反语法 规则的语句。这类错误在编译时由编译程序自动发现。这 类错误很普遍,是初学者最容易犯的错误:也很顽固,即 使是最有经验的程序员也难以保证不犯这类错误 【示例23-1】 从命令行接受数据并输出 该程序在编译时会输出如下内容 分析:从输出可以看出,该示例共有4个错误。其中,第 个错误是第5行语句中的关键字end书写错误引起的,正确 的写法应该是end。第2个错误是第6行错用了 符 引起的,输入流应该使用“”。第3个错误就需要仔细 理解了。从输岀结果看岀错误发生在第8行,错误内容中 却说是data前缺少“;”号。这说明是第7行缺少“”号 导致两行连在了一起,但是编译器发现这两行是两条独立 的语句,所以提示8行有错。第4个错误是8行括号不全引 起的,应该在“3”后补一个“)” 所有程序员终生都要受语法错误的困扰,即使再小心仔细 也难以避免。但是语法错误也是最容易处理和发现 要按照提示找到错误点,根据错误内容修改即可。这类错 误只能随着经验的积累逐步的减少,却不能根除。有时编 译器还会对某些语句给出警告,例如,将浮点数赋给整型 数,将很小的数作为被除数等。这些不是错误,但却潜在 地存在问题,也是需要高度重视的。 2322链接错误 链接错误发生在程序链接时。将编译过的程序与程序使用 的库链接生成可执行程序时,如果不能在所有的库和目标 文件内找到所引用的函数、变量或标识符,就会产生链接 错误。这常常是符号不存在、拼写不正确或者使用错误引 起的。 【示例23-2】 链接错误的示例代码。 该程序编译链接时,会有如下输出。 分析:从输出可以看出示例代码除了仅有一个数据转换警 告外,已经通过了编译,可以不管这个警告。下面可以看 出有3个链接错误。第1个是提示函数unO找不到。这是因 为声明的funO函数的参数为浮点型,但定义时却错写成了 整型,所以链接程序认为找不到参数为浮点型的funO函数。 第2个错误是声明了外部变量x,但是却没有找到定义它的 库文件。第3个是提示有两个无法找到的外部引用,所以 导致不能链接为可执行程序。 般来讲,可以将链接错误分为工程内链接错误和工程外 链接错误两种。其中,工程内链接错误指工程内使用的对 象在链接时未能找到,是代码级别的。工程外链接错误指 工程使用的外部对象未能找到,一般是使用外部编译好的 库造成的。下面分别予以说明。

文档评论(0)

fangsheke66 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档