我刚碰到这行代码:
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.”