我在一个C++项目中遇到了这段代码
unsigned int fn() {
//do some computations
int value = ....
if(value <= 0)
return 0;
return (unsigned int)value;
}
我不明白在最后一个return语句中使用转换的必要性,因为所有负数都将被if语句捕获(因此返回0)。
此外,此函数fn是从另一个函数调用的(其返回类型为int),该函数仅返回由fn返回的值。
谢谢。
unsigned int
可能也是有意义的。 - Simon Kraemerunsigned int
类型的变量(出于某种原因)。问题应该是:value
为什么不是unsigned int
而是int
? - Clearerfn
并操作unsigned int
结果?但无论如何,无符号整数都会被调用者转换为整数。 - Exuberant