|
А на сколько вообще корректно разное поведение беззнаковой переменной при уменьшении ее в отрицательные значения? Или увеличения больше 2^N-1?
Один режим. Переменная по определению без знака. Значит не может иметь значение, меньшее нуля. Значит ее надо так и ограничить. В многих процессорах есть для этого режим "Saturation ON". Тоже касается и >2^N-1. Очень нужный режим для сигнальной обработки. Экономит тучу ресурсов на отсутствии ручных проверок переполнения. Но, однако, bialix'овский код работать не будет :)
Второй режим - saturation OFF. Все вроде как у людей, все работает.
А с точки зрения того-же ANSI или K&R как быть? В одном режиме будет все работать, в другом - нет.
E-mail: info@telesys.ru