numeric_limits 解析

初次碰到numeric_limits不知道这个可以用来干嘛,可以这么说,这个是用来为移植的方便性设计的。

c++移植的时候有这么一条经验,为了达到最大程度的可移植性,一种明智的做法是让我们所依赖的由实现定义的特征明确化,将更微妙的实例孤立到程序里一些清楚标明的部分之中。

一种典型的实际做法就是将所有对硬件的依赖表述为一种常量和类型定义,放到某个头文件里。正是为了支持这类技术,标准库提供了numeric_limits 。


说白了:便是 让我们程序员知道 我们现在所实现的环境是什么样的环境,char  short  int  float long double 具体是怎么实现的,它们的位数和取值范围是多少,好在进行移植的时候进行代码改写。如在32位机子中  int 型为32位,即4个字节,现在我要把在这个环境中的程序移植到16位的机子上来,通过numeric_limits 我们可以知道在16位上的int 只有16位,而long 有32位。看下面的例子:

32位机子中    typedef int int32;    int32 a;       // 要用 numeric_limits 知道此时的环境

16位机子中    typedef long int32;  int32 a;

这样进行移植的时候就不会发生错误了。


弄明白了numeric_limits是用来干嘛的,接下来我们来解释下numeric_limits 用法,网上有很多

这一篇大家可以看一下   http://blog.csdn.net/netrookie/article/details/5530578

我推荐大家还是直接看 http://www.cplusplus.com/reference/limits/numeric_limits/ 


你可能感兴趣的:(C++,移植)