S32 pLeftX;
pLeftX = pos.x - 1; //Getting a Misra 2004: 10.1/R warning for this.这里,pos.x是int类型。
发布于 2013-06-17 14:17:59
如果pos.x真的是int,而S32是带符号的整数类型,那么你的静态分析器就失败了。
规则10.1允许隐式类型转换为相同符号的更宽类型。如果pos.x为int,则表达式中的类型为int + int。结果是一个int,它总是经过签名的。然后将其隐式转换为32位带符号的int,这很好。
发布于 2015-09-06 19:18:13
我首先看一下这个工具是如何配置的。int的大小是多少?根据C90标准,int的大小是由实现定义的,并且可以是16位或更大。假设S32是32位有符号整数类型,我的理解是:
https://stackoverflow.com/questions/17108855
复制相似问题