Задайте, следует ли заменять умножения на степени двойки на знаковые побитовые сдвиги. Некоторые стандарты кодирования, такие как MISRA, не допускают побитовых операций над подписанными целыми числами. Очистка этой опции увеличивает вероятность генерации MISRA C® совместимый код.
Category: Генерация кода > Стиль кода
По умолчанию: on
Сгенерируйте код, который заменяет умножения на степени двойки на подписанные битовые сдвиги.
Для примера, когда вы выбираете эту опцию, умножения на 8 смещаются влево в сгенерированном коде:
Y.Out1 = (U.In1 << ((int8_T)3));
Точно так же умножения на 16 смещены влево в сгенерированном коде:
Y.Out4 = (U.In2 << ((int8_T)4));
Не допускать замены умножений на степени двойки со знаковыми сдвигами. Очистка этой опции поддерживает податливость MISRA C.
Для примера, когда вы очищаете эту опцию, умножения на 8 не заменяются побитовыми сдвигами:
Y.Out1 = U.In1 * ((int64_T)8);
Точно так же умножения на 16 не заменяются побитовыми сдвигами:
Y.Out4 = U.In2 * ((int32_T)16);
Параметр: EnableSignedLeftShifts |
Тип: Вектор символов |
Значение: 'on' | 'off' |
По умолчанию: 'on' |
Приложение | Настройка |
---|---|
Отладка | Никакого влияния |
Трассируемость | Никакого влияния |
Эффективность | На |
Меры безопасности | Никакого влияния |