0

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

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

  1. SHRT_MAX我可以使用的等价物是什么double

  2. SHRT_MAX有没有更好的方法来做到这一点,而不是诉诸double最大?

4

4 回答 4

1

我假设您使用最大值来指示数组中的参数。这是一种常见的技术,并且是完全有效的。

至于最大双倍,你想要DBL_MAXfrom <float.h>

于 2012-09-18T01:55:48.650 回答
1

宏的存在正是您使用它们的原因 - 所以这很好(并且可移植)

看一下DBL_MAX

于 2012-09-18T01:57:28.460 回答
0

1)您可以使用DBL_MAXfloat.h 或numeric_limits<double>::max()

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

struct Input
{
    short value;
    bool isTransformed;

    Input() : value(0), isTransformed(false) {}
};
于 2012-09-18T02:01:12.453 回答
0

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

于 2012-10-16T23:14:26.600 回答