博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
错误处理和调试2 - C++快速入门31
阅读量:6302 次
发布时间:2019-06-22

本文共 934 字,大约阅读时间需要 3 分钟。

错误处理和调试2

 

让编程改变世界

Change the world by program


 

让函数返回错误代码

  这种方式我们已经了然于心,但我们仍有进一步继续讨论的必要。 不知道大家还记不记得很久很久以前,我们一起写过的那个求阶乘的栗子:  

其实这个栗子充满隐患,为什么?

  我们输入13,从表面上看,程序既没有崩溃也没有报告出错,但它已经不正常了! 我们来看下13阶乘的正确结果是:
13!== 6,227,020,800   在知道问题后,我们其实也很容易的就可以猜到错误发生的原因:计算阶乘的值超出了计算机所能表达的最大整数(至少在我们这台机子上)。 鉴于这类问题的纠正,小甲鱼在这里教大家一个新技巧:运用 climits 头文件  

climits 头文件?

  这个头文件从 C 的 limits.h 头文件引用过来的。 主要列出了各种数据类型在给定操作系统上的取值范围,并且把每种数据类型的最大可取值和最小可取值都分别定义为一个常量供我们比较。   比如,SHORT_MAX 代表短整数类型在给定系统上的最大可取值,SHORT_MIN 代表短整数类型在给定操作系统上的最小可取值。 USHORT_MAX 代表无符号整数类型的最大可取值。 在这个程序里,为了判断阶乘计算的结果没有超出一个无符号长整数的最大取值,我们可以使用 ULONG_MAX 来提前获得这个值进行对比。   一起动手来修改这个代码:factorial2.cpp( )   有些程序员喜欢使用异常(咱们将在稍后学习)而不是使用 return 语句。 反对使用这个栗子程序里所演示的技巧的主要理由是:把各种出错代码进行处理的语句混杂在程序的主干部分既不利于模块化编程,又容易干扰正常的思考! [buy]   [/buy] [Downlink href='http://urlxf.qq.com/?yaeyQjq']视频下载[/Downlink] [Downlink href='http://kuai.xunlei.com/d/LZTQOUUKQFZQ']备胎下载[/Downlink]

转载于:https://www.cnblogs.com/LoveFishC/archive/2012/06/27/3846210.html

你可能感兴趣的文章
《深入解析IPv6(第3版)》——1.7 理解测试
查看>>
Apache Directory LDAP API 首个正式版本发布
查看>>
《淘宝网开店 进货 运营 管理 客服 实战200招》——1.5 网上开店要具备哪些软件条件...
查看>>
NodeGit —— Node.js 的 Git 客户端开发包
查看>>
《SolidWorks 2014中文版机械设计从入门到精通》——1.8 参考点
查看>>
Vagrant 中高效的 Puppet 模块管理 【已翻译100%】
查看>>
Struts2和hibernate框架整合实现简单的注册登陆功能
查看>>
《思科UCS服务器统一计算》一2.2 内存子系统
查看>>
苹果要用 Swift 语言颠覆传统编程
查看>>
《大数据架构和算法实现之路:电商系统的技术实战》——2.4 案例实践
查看>>
微软或停止开发 Windows 10 Mobile,关闭手机部门
查看>>
oadRunner性能测试巧匠训练营》——2.2 LoadRunner组成与示例程序
查看>>
谁动了 Mt. Gox 价值 4 亿美元的比特币?
查看>>
学编程从娃娃抓起:苹果推出 Swift Playground 编程学习应用
查看>>
《数据科学:R语言实现》——3.4 使用日期格式
查看>>
《Node.js区块链开发》一1.3 加密货币就是货币
查看>>
《树莓派Python编程入门与实战》——3.10 Q&A
查看>>
vlock – 一个锁定 Linux 用户虚拟控制台或终端的好方法
查看>>
《动手搭建智能家居系统》——2.7 面向普罗大众的智能家居:Google、Apple、Samsung及其他...
查看>>
新零售、新商业,阿里巴巴登顶亚洲市值最高公司
查看>>