Здравствуйте, netch80, Вы писали:
N>Не должно быть никакого "что угодно". Должно быть примерно следующее (и это должно быть в стандарте): в случае, если результат не помещается в целевой тип целого со знаком, компилятор и среда исполнения могут, по выбору: N>• выполнить операцию в соответствии с правилами платформы N>• выполнить операцию в соответствии с общепринятой арифметикой в дополнительном коде N>• выполнить операцию, отдав в качестве результата зависящее от реализации значение N>• по зависящим от реализации правилам выполнить действие, предусмотренное для особой ситуации типа "целочисленное переполнение"
Предположение, что переполнения быть не может в принципе позволяет комиляютору соптимизировать выражение x * 2 / 2. А ограничения выше — нет.