【发布时间】:2015-08-19 03:06:57
【问题描述】:
我环顾四周的每个人都存在一个关于我的问题的话题,但我找不到。
unsigned int x = 5;
int y = -3;
if(y<x)
func1();
else
func2();
func2 被调用。但我想打电话给func1。
我知道在比较这些值时必须使用强制转换运算符。
但不允许使用强制转换运算符或更改变量的类型。
我该如何解决这个问题?
【问题讨论】:
-
如果启用了转换警告,编译器应始终在此类比较中生成一个,而无需显式强制转换。即使您在比较之前检查 (y 完全 禁止类型转换但不强制执行签名警告(和大多数/所有其他警告)太过分了。
标签: c int compare type-conversion unsigned-integer