我有一个 C 的短裤数组和一个多头数组。我希望能够定义一个数组插槽何时无法被调用它的函数填充,因为数据不足或丢失。两种情况下的有效值都可以是正数或负数,但我可以放心地假设这些值永远不会接近可以放置在 short 或 double 中的最大值。
这是一个 Windows 64 位应用程序,我一直使用SHRT_MAX
它作为唯一的短编号。我的问题是:
SHRT_MAX
我可以使用的等价物是什么double
?SHRT_MAX
有没有更好的方法来做到这一点,而不是诉诸double
最大?
我假设您使用最大值来指示数组中的空参数。这是一种常见的技术,并且是完全有效的。
至于最大双倍,你想要DBL_MAX
from <float.h>
。
宏的存在正是您使用它们的原因 - 所以这很好(并且可移植)
看一下DBL_MAX
1)您可以使用DBL_MAX
float.h 或numeric_limits<double>::max()
2)只要您确定它们永远不会是“正常”值,使用最大值似乎没问题。否则,您可以使用一个知道数字是否已更改的小对象:
struct Input
{
short value;
bool isTransformed;
Input() : value(0), isTransformed(false) {}
};
您可以使用信号 NaN ( numeric_limits::signaling_NaN
)。这样,如果有人尝试使用它,他们将接受浮点异常。