取决于在上下文中这两个数的真实的可能取值范围吧
比如MS的lstrlenA()、lstrlenW()这API由于历史原因定义的返回值类型是int,但实际上一般是不会小于0的(实测了一下,串太长超过INT32_MAX会溢出返回负值),可以直接转为无符号数。最好是不用这种老函数了,尤其是对于不可控的外来输入(自己的输入还能控制不溢出,别人的输入就不一定了),否则就是安全漏洞。
一般情况的话,
1、要先判断有符号数是否为负数,不是负数时再转成无符号数和无符号数比较
2、对来自网络、文件、共享内存、命令行、环境块等的外部输入,慎之又慎,因为你面临的可能是精心构造的畸形数据,一切你认为正常是不可能发生的,都有可能发生
--
修改:z16166 FROM 125.35.123.*
FROM 125.35.123.*