C++ 模板化函数无法将值与-1相乘
请看下面的简单代码, 使用命令g++-std=c++14-g-O2 CODE.cpp编译它会产生奇怪的输出: 为什么会这样-2147483648 请解释一下这种行为 为INT_MIN推导的类型为INT。C++ 模板化函数无法将值与-1相乘,c++,g++,c++14,C++,G++,C++14,请看下面的简单代码, 使用命令g++-std=c++14-g-O2 CODE.cpp编译它会产生奇怪的输出: 为什么会这样-2147483648 请解释一下这种行为 为INT_MIN推导的类型为INT。 -如果INT_MIN=-INT_MAX-1,INT_MIN可能会导致整数溢出,这在大多数平台上都是正确的,因此会导致未定义的行为。Two's complete。。。 # include<bits/stdc++.h> using namespace std; # define pc
-如果INT_MIN=-INT_MAX-1,INT_MIN可能会导致整数溢出,这在大多数平台上都是正确的,因此会导致未定义的行为。Two's complete。。。
# include<bits/stdc++.h>
using namespace std;
# define pc(x) putchar(x)
template <class T>
inline void pd(T num, char ch = ' '){
num = -num;
cout << "Why this ?? " << num << endl;
}
int main(void){
pd(INT_MIN);
return 0;
}