CodeProver不检测和无符号变量溢出/下溢
8视图(30天)
显示旧的评论
接受的答案
Alexandre De Barros
2017年12月26日
你好,
在标准C,没有溢出的无符号类型。C99标准(§6.2.5/9):
“涉及无符号的计算操作数不能溢出,因为结果不能代表产生的无符号整数类型模数量减少是一个大于最大的值可以由生成的类型。”
因此,默认情况下,代码验证不会报告这种溢出。
现在,如果你有兴趣通过检测它们,您可以更改默认行为由于选择“检测溢出”。
在配置面板中,选择“代码验证验证”然后“检查行为”,右边的页面,选择“检测溢出”,选择“签名和无符号”。
请注意,在你的例子中,溢出会出现在赋值的变量,因为执行减法int类型(积分促销)。
亚历克斯