C++ 获得'-inf&x27;从函数返回

C++ 获得'-inf&x27;从函数返回,c++,C++,我有一个简单的函数“chs”,它可以把一个正数变成负数,把一个负数变成正数。然而,出于某种原因,它返回'-inf',我假设它意味着无限 功能代码: double chs (double token) { return (token * -1); } 主要代码: chs (-5); 函数签名返回void void chs (double token) 这意味着您的函数实际上不返回任何内容,因此返回的内容都是未定义的 解决方法是简单地用一个双精度的替换void,如下所示: double c

我有一个简单的函数“chs”,它可以把一个正数变成负数,把一个负数变成正数。然而,出于某种原因,它返回'-inf',我假设它意味着无限

功能代码:

double chs (double token) {
  return (token * -1);
}
主要代码:

chs (-5);

函数签名返回void

void chs (double token)
这意味着您的函数实际上不返回任何内容,因此返回的内容都是未定义的

解决方法是简单地用一个双精度的
替换
void
,如下所示:

double chs (double token)

std::abs()有什么问题?而且返回
void
(无)的函数不应
返回值。这只是一个断开的代码。您的函数签名声明它返回
void
,但您返回的是一个
double
。然后使用结果,这是未定义的行为。您应该在编译器上启用(并注意)警告,以避免此类错误。你是如何打印的?@JesperJuhl std::abs的错误在于它没有做OP想要做的事情(即反转输入参数的符号),也不需要乘以负数:
return-token对不起,空白本应该是双重的。我的打字错误