错误处理和调试2 – C++快速入门31
错误处理和调试2
让编程改变世界
Change the world by program
让函数返回错误代码
这种方式我们已经了然于心,但我们仍有进一步继续讨论的必要。
不知道大家还记不记得很久很久以前,我们一起写过的那个求阶乘的栗子:factorial.cpp
其实这个栗子充满隐患,为什么?
我们输入13,从表面上看,程序既没有崩溃也没有报告出错,但它已经不正常了!
我们来看下13阶乘的正确结果是:13!== 6,227,020,800
在知道问题后,我们其实也很容易的就可以猜到错误发生的原因:计算阶乘的值超出了计算机所能表达的最大整数(至少在我们这台机子上)。
鉴于这类问题的纠正,小甲鱼在这里教大家一个新技巧:运用 climits 头文件
climits 头文件?
这个头文件从 C 的 limits.h 头文件引用过来的。
主要列出了各种数据类型在给定操作系统上的取值范围,并且把每种数据类型的最大可取值和最小可取值都分别定义为一个常量供我们比较。
比如,SHORT_MAX 代表短整数类型在给定系统上的最大可取值,SHORT_MIN 代表短整数类型在给定操作系统上的最小可取值。
USHORT_MAX 代表无符号整数类型的最大可取值。
在这个程序里,为了判断阶乘计算的结果没有超出一个无符号长整数的最大取值,我们可以使用 ULONG_MAX 来提前获得这个值进行对比。
一起动手来修改这个代码:factorial2.cpp(课件及源代码下载地址)
有些程序员喜欢使用异常(咱们将在稍后学习)而不是使用 return 语句。
反对使用这个栗子程序里所演示的技巧的主要理由是:把各种出错代码进行处理的语句混杂在程序的主干部分既不利于模块化编程,又容易干扰正常的思考!
备用视频下载
技术, IT技术, CPP, 视频教程
风险提示及免责条款
市场有风险,投资需谨慎。本文不构成个人投资建议,也未考虑到个别用户特殊的投资目标、财务状况或需要。用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!
