Замените умножение степенями двойки с поразрядными сдвигами со знаком

Описание

Задайте, заменить ли умножение степенями двойки с поразрядными сдвигами со знаком. Некоторые стандарты кодирования, такие как MISRA, не позволяют битовые операции на целых числах со знаком. Очистка этой опции увеличивает вероятность генерации MISRA C® совместимый код.

Генерация кода Category:> Стиль кода

Настройки

Значение по умолчанию: на

На

Сгенерируйте код, который заменяет умножение степенями двойки с поразрядными сдвигами со знаком.

Например, когда вы выбираете эту опцию, умножение 8 лево-переключено в сгенерированном коде:

Y.Out1 = (U.In1 << ((int8_T)3));

Точно так же умножение 16 лево-переключено в сгенерированном коде:

Y.Out4 = (U.In2 << ((int8_T)4));

'off'

Не позволяйте замену умножения степенями двойки со сдвигами со знаком. Очистка этой опции поддерживает MISRA C соответствие.

Например, когда вы очищаете эту опцию, умножение 8 не заменяется поразрядными сдвигами:

Y.Out1 = U.In1 * ((int64_T)8);

Точно так же умножение 16 не заменяется поразрядными сдвигами:

Y.Out4 = U.In2 * ((int32_T)16);

Информация о командной строке

Параметр: EnableSignedLeftShifts
Ввод: символьный вектор
Значение: 'on' | 'off'
Значение по умолчанию: 'on'

Рекомендуемые настройки

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

Похожие темы