exponenta event banner

Заменить умножение на степени двух со знаком побитовых сдвигов

Описание

Укажите, следует ли заменять умножение на степени двух со знаком побитовых сдвигов. Некоторые стандарты кодирования, такие как 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'

Рекомендуемые параметры

ПриложениеНастройка
ОтладкаНикакого воздействия
ОтслеживаемостьНикакого воздействия
ЭффективностьНа
Меры безопасностиНикакого воздействия

Связанные темы