История изменений
Исправление alysnix, (текущая версия) :
А как на лично мой взгляд - куда более неприятно обрезание разрядности при сложении вида long = int + int. Казалось бы программист предусмотрел возможность «невлезания» результата и выделил более длинный тип.
программист тут ничего не предусмотрел и компилятор сделал все правильно. чтобы учитывать переполенение в сумме надо один из интов преобразовать к лонгу. тогда компилятор начнет делать операции на длинных регистрах.
то что вы присваиваете в лонг вовсе не говорит, что вы хотите большую разрядность в операции. и компилятор не должен за вас додумывать.
Исходная версия alysnix, :
А как на лично мой взгляд - куда более неприятно обрезание разрядности при сложении вида long = int + int. Казалось бы программист предусмотрел возможность «невлезания» результата и выделил более длинный тип.
программист тут ничего не предусмотрел и компилятор сделал все правильно. чтобы учитывать переполенение в сумме надо один из интов преобразовать к лонгу. тогда компилятор начнет делать операции на длинных регистрах.
то что вы присваиваете в лонг вовсе не говорит, что вы хотите большую точность. и компилятор не должен за вас додумывать.