替换C+中的晶圆厂+; C++中有什么不同的函数,可以代替函数FAB()吗? 例如: fabs(tab[j][i]) > fabs(tab[max][i])

替换C+中的晶圆厂+; C++中有什么不同的函数,可以代替函数FAB()吗? 例如: fabs(tab[j][i]) > fabs(tab[max][i]),c++,C++,是的,有 如果参数始终为double,我建议您仍然使用fabs——这样更可靠。风险在于:有时只有abs(int)可见,因此double参数将被截断为int(不过,您可能会收到编译器警告) 其中一个原因是,在C++17之前,不能保证单个标题同时包含abs(int)和abs(double):必须包含abs(double)和必须包含abs(int),但它们当然可能同时包含这两个标题。因此,更改编译器可能会更改选择的重载 另一个例子:如果你的代码< >包括< /Calp> “数学”,h“/>代码,而不是

是的,有

如果参数始终为
double
,我建议您仍然使用
fabs
——这样更可靠。风险在于:有时只有
abs(int)
可见,因此
double
参数将被截断为
int
(不过,您可能会收到编译器警告)

其中一个原因是,在C++17之前,不能保证单个标题同时包含
abs(int)
abs(double)
必须包含
abs(double)
必须包含
abs(int)
,但它们当然可能同时包含这两个标题。因此,更改编译器可能会更改选择的重载

另一个例子:如果你的代码< >包括< /Calp> <代码>“数学”,h“/>代码,而不是<代码> <代码>,使用VisualC++,Wr.<代码> ABS(double)可见吗?它将一直持续到Visual Studio 2013,但当您升级到Visual Studio 2015时,您将失去它


当然,当参数类型未知时,use仍应使用
abs
,例如,它是模板的一部分。

为什么需要替换它?它仍然像早期的C一样工作。此外,请仔细阅读标记Wiki,您使用的四个标记中有三个不适用于此处。防止包含错误语言的标题?@Quentin这只是一个示例,不是最好的示例。我会更新答案。