Укажите, следует ли заменять умножение на степени двух со знаком побитовых сдвигов. Некоторые стандарты кодирования, такие как MISRA, не допускают побитовых операций над подписанными целыми числами. Удаление этой опции увеличивает вероятность генерации кода, совместимого с MISRA C ®.
Категория: Создание кода > Стиль кода
По умолчанию: вкл.
Создайте код, заменяющий умножение на степени двух со знаком побитовых сдвигов.
Например, при выборе этой опции в создаваемом коде сдвигаются влево умножения на 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' |
| Приложение | Настройка |
|---|---|
| Отладка | Никакого воздействия |
| Отслеживаемость | Никакого воздействия |
| Эффективность | На |
| Меры безопасности | Никакого воздействия |