keiwin 发表于 2010-3-24 20:55:14

“result of unsigned comparison is constant”报错

编译时出现: result of unsigned comparison is constant
             expression with no effect elided

这两个警告。实在不懂如何解决。在网站上也找不到有效的办法。虽然不影响程序的运行,但怕留下后患。
希望高手们帮忙解决一下。

HuangTing 发表于 2013-1-7 17:16:27

本帖最后由 HuangTing 于 2013-1-7 17:18 编辑

碰到了同样的问题。
错误解释:
result of unsigned comparison is constan:无符号数比较的结果是个常量
expression with no effect elided:       本语句执行完毕后没有任何效果(即跟执行1条NOP语句一样,或跟没有本语句一样)。

原因:定义的无符号变量,但程序中却有判断本无符号变量是否有小于0的情况存在,因为它只能大于等于0,不可能小于0,故此条命令相当于,判断1是否大于0一样,它肯定大于0,所以是无效代码,违反了当初写此条语句的本意。
解决方法:照你的本意去设计变量类型(如将无符号改为有符号定义),或将变量与0比较的地方别让它是与0进行比较(永远大于等于0,还比较个鸟啊,毫无意义嘛)。

页: [1]
查看完整版本: “result of unsigned comparison is constant”报错