ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
23 ноября
656180 Топик полностью
mr-x (26.02.2016 20:31, просмотров: 220) ответил Николай Коровин на Два варианта: ( (int16_t)(a1-a2) > 0 ) и ( (int)a1 - (int)a2) > 0 ) чего дают? А то я сначала каркнул, а потом призадумался — до чего укурочным порой бывает преобразование типа О_о
Сейчас проверить, к сожалению, не могу. Всё на работе осталось до понедельника. Я то как рассуждал, если из знакового вычесть знаковое, то результат тоже будет знаковым. Ноль тоже знаковый. Неравенство должно быть корректным. А оно вон чего. Была мысля, что константа ноль изначально имеет тип int (знаковый 32-х битный) и разность некорректно приводится к 32-х битному значению. Но приведение нуля к int16_t ничего не изменило. Побороть можно использовав промежуточную переменную ("a3" в примере). Возможно твои варианты сработают. Но разобраться всё равно необходимо, что я делаю не так. Сколько ещё таких нюансов в программе может прятаться.