gpt4 book ai didi

c - MISRA C :2004 10. 5 查询

转载 作者:行者123 更新时间:2023-12-01 23:37:35 25 4
gpt4 key购买 nike

我有点卡在导致 MISRA C 2004 10.5 违规的代码部分,但我无法弄清楚到底是什么原因。

我已经定义了这个 MACRO 以获得 2 的幂。

显示违规的代码是

#define tmM_pow2_16bit(x)   ((tm_uint16)((tm_uint16)1U<<((tm_uint16)x)))

来自静态分析工具的消息是

Shift left of signed quantity (int) [MISRA 2004 Rule 10.5, required]

谢谢

最佳答案

最可能的原因是移位运算符强制将 (tm_uint16)1U 隐式提升为 int 类型。

删除第二个转换以确保您转换无符号类型:

((tm_uint16)(1U<<((tm_uint16)x)))

关于c - MISRA C :2004 10. 5 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51726255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com