我收到错误"' abs'在我的功能。 代码非常简单。
double abs (double x) { // Returns absolute value
if (x<0)
return (x*(-1));
else
return x;
}
这是关于代码块的C项目。 我已经尝试过铸造退货,但错误仍然存在。
答案 0 :(得分:5)
我的猜测是,您已<stdlib.h>
已包含,因为abs
已在此处声明且签名为int abs(int)
,因此您的定义会产生&#34;冲突的类型&#34;。
答案 1 :(得分:4)
问题不在于您的代码本身。相反,还有另一个已定义的函数名为abs()
,具有不同的原型 - 可能在整数上运行。与C ++不同,C不允许函数重载。
我建议您使用fabs()
中的math.h
。它不仅已经存在,而且通常会编译为单个FPU指令而不是调用和条件分支。
还有fabsf()
和fabsl()
分别在float
和long double
上执行相同的操作。要使用这些,您可能需要选择C99或C11模式,因为这些功能未在原始ANSI标准中指定。