【发布时间】:2012-01-23 19:03:58
【问题描述】:
我在一段代码中看到警告提示
我正在比较有符号数和无符号数。
类似 int
纠正此问题的最佳方法是什么?我相信取有符号数的模数然后进行比较,对吗?我的意思是在表达式上除以 sizeof 运算符后得到无符号数。所以另一种方法可能是让这个 rhs 签名
如果是这样,c 中有一个函数可以让我这样做吗?我进行了快速搜索,他们说 % for modulo 这显然不是我想要的。
这是真正的警告
警告:有符号和无符号整数表达式之间的比较
这是真正的代码行
functionA( ......, int num, .....) {
assert( num
}
【问题讨论】:
-
如果您在问题中提到警告和错误,您可能需要写下实际警告,而不是您的大概版本。而如果你可以让它附上一些相关的代码,那就更好了。
-
在上面添加了原始代码和警告。
-
问题是,
num可能采用的预期允许范围是多少?与大小相关的表达式确实让我想知道使用 modulo-operator 或abs-function 的目标可能是什么?