LINUX.ORG.RU

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

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

я много пишу на С. всё нормально работает с самым последним компилятором.

что у тебя стряслось, что перестало работать? может, ты используешь какие-то особенности конкретных архитектур? потому что «сброс знака по (a & 0x7fffffff)» - это реализация, а не стандарт С. стандарт сообщает, что int должен вмещать диапазон от и до. и быть _не меньше_ 4 байт. но «не меньше» не означает равно. если ты хочешь менять знак таким экзотическим образом, используй INT_MAX. и вообще числовые константы в коде - это зло.

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

я много пишу на С. всё нормально работает с самым последним компилятором.

что у тебя стряслось, что перестало работать? может, ты используешь какие-то особенности конкретных архитектур? потому что «сброс знака по (a & 0x7fffffff)» - это реализация, а не стандарт С. стандарт сообщает, что int должен вмещать диапазон от и до. и быть _не меньше_ 4 байт. но «не меньше» не означает равно. если ты хочешь менять знак таким экзотическим образом, используй INT_MAX.