【发布时间】:2018-06-03 04:35:53
【问题描述】:
theta=atan2(0,0);
这个语句的输出是0,但是它是0/0的形式,所以它的输出怎么可能是0,连wikipedia都说应该是undefined,请解释一下为什么编译器给这个语句的输出是0。
【问题讨论】:
-
C 标准说
atan2(0, 0)是一个域错误,这会导致实现定义的返回值。 -
严格来说,标准规定“如果两个参数都为零,则可能会发生域错误。”最终结果大致相同。该标准还在第 7.12.1 节错误条件的处理中详细说明了应该发生的情况。
-
您是否在问当行为未定义时会发生什么样的行为..?
标签: c undefined trigonometry angle atan2