if(double)有效C吗?

前端之家收集整理的这篇文章主要介绍了if(double)有效C吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我刚碰到这行代码
if( lineDirection.length2() ){...}

其中length2返回一个double.有点让我感到困惑的是0.0等于0,NULL和/或false.

这是C标准的一部分还是未定义的行为?

解决方法

这是一个非常标准的行为(布尔转换)

$4.12/1 – “An rvalue of arithmetic,enumeration,pointer,or pointer to member type can be converted to an rvalue of type bool. A zero value,null pointer value,or null member pointer value is converted to false; any other value is converted to true.”

猜你在找的C&C++相关文章