В руководстве пользователя abs's есть ПРИМЕЧАНИЯ: попытка определения абсолютного значения самого отрицательного целого не определена.получить абсолютное значение отрицательного числа
И прототип абс является: int abs(int j);
Почему обратный абс int
? Поскольку возвращаемое значение будет положительным, почему бы не вернуть unsigned int
?
Если абс вернулся unsigned int
, решение абсолютной стоимости наиболее отрицательное целое число является простым, как это:
if(INT_MIN == j)
return (unsigned int)j;
Вероятность того, что спецификация 'abs()' была доработана до того, как у C были 'unsigned' типы вообще. –
Я думаю, что это правильный ответ, спасибо большое @ Джонатан Леффлер –