gpt4 book ai didi

c - 规则 10.1,复杂整数表达式的隐式转换

转载 作者:行者123 更新时间:2023-11-30 19:44:35 24 4
gpt4 key购买 nike

Power_s.Ch1 = ( (uint8)(((*RequestData)[0]) << 8 ) | ((*RequestData)[1]) );

-> 它抛出以下错误:

  1. 违反 MISRA 2004 规定规则 12.8,类次右侧值超出范围 运算符
  2. 违反 MISRA 2004 要求规则 10.1,复数整数的隐式转换 表达

如何解决这个问题?

最佳答案

1.假设 u8 操作数,左移超过 7 位需要比 uint8 更宽的整数,在您的情况下,您将移动 8。

2.假设 Power_s.Ch1 是大于 uint8 的类型,则存在从 unit8 到更高整数类型的隐式转换。

请检查整数提升和算术转换规则。如果发生移位,通常的一元转换将分别应用于每个操作数,结果的类型是转换后的左操作数的类型。

关于c - 规则 10.1,复杂整数表达式的隐式转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27895830/

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