码迷,mamicode.com
首页 > 编程语言 > 详细

数值限制------c++程序设计原理与实践(进阶篇)

时间:2017-11-18 14:17:37      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:一个   sign   eric   中指明   value   with   文档   oat   哨兵   

  每种c++的实现都在<limits>、<climits>、<limits.h>和<float.h>中指明了内置类型的属性,因此程序员可以利用这些属性来检查数值限制、设置哨兵机制等等。它们对于开发底层程序是非常重要的。如果你觉得需要这些属性值,表明你的工作很可能比较靠近硬件。但这些属性还有其他用途,例如,对语言实现细节感到好奇是很正常的:“一个int有多大?”,“char是有符号的吗?”等等。希望从系统文档中找到这些问题的正确答案是很困难的,而c++标准对这类问题大多没有明确规定。较好的方法是写一个简短的小程序来获得这些问题的答案:

#include<limits>

cout<<"number of bytes in an int:"<<sizeof(int)<<‘\n‘; cout<<"largest int:"<<INT_MAX<<‘\n‘; cout<<"smallest int value:"<<numeric_limits<int>::min()<<‘\n‘; if(numeric_limits<char>::is_signed) cout<<"char is signed\n"; else cout<<"char is unsigned\n"; char ch=numeric_limits<char>::min(); cout<<"the char with the smallest positive value:"<<ch<<‘\n‘; cout<<"the int value of the char with the smallest positive value:"<<int(ch)<<‘\n‘;

  如果你编写的程序将来要用在多种硬件平台上,那么能在程序中获取上面这些信息就非常有价值了。另一种方法是将这些信息硬编码到程序中,但这对维护人员来说是灾难性的。

这些属性值对溢出检测也是很有用的。

 

c++程序设计原理与实践(进阶篇)

数值限制------c++程序设计原理与实践(进阶篇)

标签:一个   sign   eric   中指明   value   with   文档   oat   哨兵   

原文地址:http://www.cnblogs.com/goudanli/p/7856495.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!