我正在HackerRank上运行一个关于指针的简单C++程序,它在网站上正常运行。但是当我在MacOS上运行它时,出现了一个error: call to 'abs' is ambiguous
错误,我不确定到底有什么不明确之处。
我已经查看了其他类似问题的答案,但错误消息通常是Ambiguous overload call to abs(double)
,这不是我的问题,因为我没有使用任何double型变量。我也尝试了包含头文件cmath
和math.h
,但问题仍然存在。
#include <stdio.h>
#include <cmath>
void update(int *a,int *b) {
int num1 = *a;
int num2 = *b;
*a = num1 + num2;
*b = abs(num1 - num2);
}
int main() {
int a, b;
int *pa = &a, *pb = &b;
scanf("%d %d", &a, &b);
update(pa, pb);
printf("%d\n%d", a, b);
return 0;
}
我的问题出现在第8行。
std::abs
就不会有问题。 - NathanOliverC++17
,std::abs
已在<cmath>
中定义。来源。 - Fureeishstd::abs
时,我得到了相同的错误,但是当我使用#include <cstdlib>
时,错误消失了,代码可以正常工作。 - AkThao.h
C头文件。 - eesiraed