在C ++中限制头文件的目的是什么

时间:2018-11-21 14:01:05

标签: c++ header-files

为什么我们在c ++中使用称为限制的头文件。

#include<limits>

有什么用途,我们可以使用这些人。 实际上,我有一个任务来探讨limits头文件的用途,并编写一个示例程序来使用它。而且我也是c ++编程语言的新手。我具有中级知识,因此我不是编程新手,而是c++的新手。我还没有阅读/研究c ++中的循环,类和函数。我只需要了解limits header file

2 个答案:

答案 0 :(得分:1)

为什么要有这个标题?

在(大多数)其他语言中,数字类型的 precise 详细信息由该语言定义。在C ++中,还有一些事情要由实现来定义。 <limits>提供了一种检查实现选择的机制。

例如,标准仅指定int是能够表示至少{em> 范围[-32767, 32767]的数字类型。我的机器上有一个int,可以代表[-2147483647, 2147483648],有些机器甚至更宽。

程序员可能希望他们的代码在具有特定选择的实现上无法编译

int some_complex_algebra(int a, int b)
{
    static_assert(std::numeric_limits<int>::max() >= 2147483648, "This code assumes at least 32bit 2's complement int");
    // ...
}

答案 1 :(得分:0)

此标头是做什么用的?

如果您查看the documentation,它会告诉您其目的:

  

此标头定义具有算术特征的元素   类型。更具体地说,它定义了numeric_limits类模板   并针对每种基本类型对其进行专业化处理:

然后继续,并提到了两个涉及float舍入和非正规floats的枚举,以及关于std::numeric_limits的详尽页面。这定义了各种操作,例如

  • 检查其可容纳的最小值和最大值
  • 检查它是否是带符号类型,以便是否可以减去数字
  • 检查其是否支持诸如infinityNaN之类的值
  • 检查其舍入行为
  

我有一个任务来探索限制头文件的目的,并且   还要编写一个示例程序来使用它。

您可以找到一个不错的示例here。运行该示例,并思考它们如何有用。例如,也许您正在编写一个对大数进行数学运算的程序,所以也许它可以使用这些函数来检查极限值是否太低并警告用户。或者,它可以检查浮点数是否符合IEEE-754标准,如果要将数字发送到其他设备,这可能很重要。