我很难理解的文章Cast the return value of a function that returns a floating point type投射返回一个浮点类型的函数的返回值
(1)在
转换仿佛被分配给该函数的类型是必需的如果返回表达式的类型与该函数的类型不同,但如果返回表达式的值较宽,则仅因为广泛的评估。
什么是“广泛评估”?它试图说什么?
(2)在本例中
float f(float x) {
return x * 0.1f;
}
float g(float x) {
return x * 0.1;
}
为什么“函数f允许比浮子返回一个值更宽,但函数g(它使用更宽的常数)不为”?
在f(),x和0.1f都是浮点型,所以我认为x * 0.1f也是浮点型?在g()中,0.1可能被认为是double,所以x * 0.1是双精度型?什么是文章的道德?
感谢和问候!
气味像功课 – JonH 2010-02-15 20:42:05
@JonH:我很怀疑安全编码的限制正在做功课....听起来就像是试图跟上进度找工作。 – 2010-02-15 20:43:28
这听起来不像功课。谁在正确的思想在教室里教C语言的疯狂特性?这是真实的世界! – 2010-02-15 20:44:24