cppreference
最后查到问题了,是因为absint_min是未定义行为
最后查到问题了,是因为abs(INT_MIN)是未定义行为,在编译器优化了之后产生了奇怪的结果。 这个未定义行为不在于“有符号数转无符号数”,C的中定义的abs()函数的原型是int abs(int);,返回值仍为int而非unsigned。 发生未定义行为的原因在于abs(INT_MIN)的返回值不能由它的类型(int)表示
最后查到问题了,是因为abs(INT_MIN)是未定义行为,在编译器优化了之后产生了奇怪的结果。 这个未定义行为不在于“有符号数转无符号数”,C的中定义的abs()函数的原型是int abs(int);,返回值仍为int而非unsigned。 发生未定义行为的原因在于abs(INT_MIN)的返回值不能由它的类型(int)表示