主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

允许对有符号整数进行右移

允许对有符号整数进行右位移位

模型配置窗格: 代码生成 / 代码样式

描述

指定是否允许在生成的 C/C++ 代码中进行有符号右位移位。某些编码标准(例如 MISRA)不允许对有符号整数进行按位运算。清除此选项会增加生成符合 MISRA-C:2004 的代码的可能性。

设置

on (默认) | off

默认值:on

On

生成对有符号整数使用右位移位的代码。

例如,当您选择此选项时,生成的代码中会出现右移。

i >>= 3

Off

不允许对有符号整数进行右移。清除此选项支持 MISRA C™ 合规性。

例如,当您清除此选项时,右移将被替换为函数调用。

i = asr_s32(i, 3U);

示例

全部展开

比较当您将允许有符号整数右移设置为不同的值时,生成的代码如何实现有符号整数的右位移位。

这是使用默认允许有符号整数右移on 生成的代码。生成的代码中出现了右移:

i >>= 3

这是将允许有符号整数右移设置为 off 后生成的相同代码。右移由函数调用代替:

i = asr_s32(i, 3U);

推荐的设置

应用情形设置
调试无影响
可追溯性无影响
效率On
安全预警无影响

编程用法

参数:EnableSignedRightShifts
类型:字符向量
值: 'on' | 'off'
默认值:'on'

版本历史记录

在 R2015b 中推出