使用独特的短期和双重价值

时间:2012-09-18 01:41:38

标签: c windows numbers

我有一个C数组的短裤和一长串的数组。我希望能够定义何时一个数组槽无法由调用它的函数填充,因为数据不足或缺失。两种情况下的有效值都可以是正数或负数,但我可以放心地假设这些值永远不会接近可以放在短或双的最大值。

这是一个Windows 64位应用,我一直使用SHRT_MAX作为短唯一编号。我的问题是:

  1. 我可以用于SHRT_MAX的{​​{1}}相当于什么?

  2. 有没有更好的方法来实现这一目标,而不是诉诸doubleSHRT_MAX max?

4 个答案:

答案 0 :(得分:1)

我假设你使用最大值来表示数组中的 null 参数。这是一种常用技术,完全有效。

至于最大双倍,您需要来自DBL_MAX的{​​{1}}。

答案 1 :(得分:1)

宏正是因为你正在使用它们 - 所以这是好的(和便携式)

查看DBL_MAX

答案 2 :(得分:0)

1)您可以使用float.h中的DBL_MAXnumeric_limits<double>::max()

2)使用最大值似乎没问题,只要你确定它们永远不会是正常的&#34;值。否则,您可以使用一个知道数字是否已更改的小对象:

struct Input
{
    short value;
    bool isTransformed;

    Input() : value(0), isTransformed(false) {}
};

答案 3 :(得分:0)

您可以使用信号NaN(numeric_limits::signaling_NaN)。这样,如果有人试图使用它,它们将采用浮点异常。