C+编程的时候,资深码农也会出现bug,这些bug码农都深有体会!

编程是个复杂的过程,而且因为由人来完成,所以难免出现错误。由于一些特殊的原因,编程错误称为“bug”,而跟踪和修正错误的过程称为“debugging”,中文叫做调试。

程序中会出现几种不同类型的错误,分清这几类错误有助于快速找出问题。编译器只能翻译语法正确的程序,当存在语法问题时,编译失败,你也就无从运行程序了。语法指程序的结构和结构的规则。例如,英语中的句子必须以大写字母开头并以句号结尾。不以大写字母开头或者不以句号结尾的句子在语法上都是错误的。

编译器可没这么宽容。程序中不管哪里出现了一个语法错误,编译器都会打印错误信息并退出,结果就是没办法执行程序。更麻烦的是,C++中的语法规则比英语要多得多,而且编译器给出的错误提示信息不见得总有用。在我们刚学着编程的前几周,你可能要花很多时间来查找语法错误。随着经验的增长,你犯的错会越来越少,找出错误也会更快。

第二类错误是运行时错误,因为这类错误在程序运行时才会出现。第三类错误是逻辑或语义错误。如果程序中有逻辑错误,程序仍会正确编译并运行,编译器不会生成任何错误消息,但是程序运行得不到预期结果。程序执行的不是你需要的功能。其实,你让程序做什么它就做什么,问题在于,你写出的代码和你本来要设计的功能并不一致。也就是说,程序的语义错了。

调试应该是你能从本书中学到的最重要的一个技能。虽然调试过程中可能有挫败感,但调试是编程中最具智慧、挑战和乐趣的部分之一。从某种角度看,调试就像侦探工作。你要根据线索来推理各种过程和事件,最终找到结果。调试又像做实验。一旦意识到出了问题,你就要修改程序并重新尝试。如果所做的假设正确,你就能预测对修改后的结果,这就离正确的程序又近了一步。如果假设错误,你就要提出新的假设。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180921A0BQUD00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券