LINUX.ORG.RU

История изменений

Исправление alysnix, (текущая версия) :

А как на лично мой взгляд - куда более неприятно обрезание разрядности при сложении вида long = int + int. Казалось бы программист предусмотрел возможность «невлезания» результата и выделил более длинный тип.

программист тут ничего не предусмотрел и компилятор сделал все правильно. чтобы учитывать переполенение в сумме надо один из интов преобразовать к лонгу. тогда компилятор начнет делать операции на длинных регистрах.

то что вы присваиваете в лонг вовсе не говорит, что вы хотите большую разрядность в операции. и компилятор не должен за вас додумывать.

Исходная версия alysnix, :

А как на лично мой взгляд - куда более неприятно обрезание разрядности при сложении вида long = int + int. Казалось бы программист предусмотрел возможность «невлезания» результата и выделил более длинный тип.

программист тут ничего не предусмотрел и компилятор сделал все правильно. чтобы учитывать переполенение в сумме надо один из интов преобразовать к лонгу. тогда компилятор начнет делать операции на длинных регистрах.

то что вы присваиваете в лонг вовсе не говорит, что вы хотите большую точность. и компилятор не должен за вас додумывать.