我正在运行以下
测试.cpp
#include <iostream>
#include <limits>
#include <cstdlib>
using namespace std;
int main(int argc, char** argv) {
long value = numeric_limits<long>::min();
value = abs(value);
cout << value << endl;
}
根据我编译和运行程序的计算机,我得到不同的结果。
要么我得到:
abs(numeric_limits<long>::min())
或者我得到:
numeric_limits<long>::min()
在后一种情况下, abs() 似乎没有被执行。我想知道是什么导致了这种差异以及我应该如何适应它。我应该以不同的方式计算 abs() 吗?