网站首页 美食营养 游戏数码 手工爱好 生活家居 健康养生 运动户外 职场理财 情感交际 母婴教育 生活知识 知识问答

MISRA C Rule­10.3 0570 Rule­11.8 0311 0312

时间:2024-11-14 00:33:07

、 switch语句中case标签'基本类型'与控制表达式的'基本类型'不相符 ; 危险的强制指针类型转换导致const限定符丢失 ; 危险的强制指针类型转换导致volatile限定符丢失 。

工具/原料

Rule­10.3 0570 Rule­11.8 0311 0312

MISRA C:2012

Rule­10.3 0570

1、 0570 This switch case label of 'essential type' '%1s', is not consistent with a controlling expression of essential type '%2s'. 当switch控制表达式和其case常量表达式为不同的基本类型类别时,会产生此消息。可考虑使用强制转换或使用 'U' 后缀(如适用)使得两个表达式的基本类型类表匹配。

2、官方示例

MISRA C Rule­10.3 0570 Rule­11.8 0311 0312

3、编程规范修改举例

MISRA C Rule­10.3 0570 Rule­11.8 0311 0312MISRA C Rule­10.3 0570 Rule­11.8 0311 0312

Rule­11.8 0311

1、 0311 Dangerous pointer cast results in loss of const qualification. 对指向'const'数据的指针进行强制转换,这种转换会导致'const'限定符的丢失。这是危险的操作,因为创建的指针会覆盖在其他地方被保护的数据。

2、根据ISO:C标准(6.3.16.1),指针只能被赋给另外一个指针,这两个指针都必须指向限定的或非限定的可兼容类型,且左侧指针类型必须有右侧指针类型的所有限定权限。这种语言约束可以保证赋值操作、函数参数传递和函数返回表达式中的类型说明符得到保留。违反这条规则的赋值语句将会生成约束错误消息0562。然而,由于使用强制转换,类型说明符可能被覆盖。

MISRA C Rule­10.3 0570 Rule­11.8 0311 0312

3、编程规范修改举例NO

MISRA C Rule­10.3 0570 Rule­11.8 0311 0312

Rule­11.8 0312

1、 0312 Dangerous pointer cast results in loss of volatile qualification. 对指向'volatile'数据的指针进行强制转换,这种转换会导致'volatile'限定符的丢失。这是危险的操作,因为创建的指针会忽略原始指针的volatile特性。

2、官方示例

MISRA C Rule­10.3 0570 Rule­11.8 0311 0312

3、编程规范修改举例

MISRA C Rule­10.3 0570 Rule­11.8 0311 0312MISRA C Rule­10.3 0570 Rule­11.8 0311 0312
© 2026 一点知道
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com