MSVC 在某些情况下不接受
0.0 / 0.0
,但在其他情况下确实接受它们。这个标准符合吗?标准的哪一部分相关?
这会触发
error C2124: divide or mod by zero
:
double f(void) {
double a = 0.0 / 0.0;
return a;
}
编译没有错误:
double a = 0.0 / 0.0;
double f(void) {
return a;
}
Clang 和 GCC 编译都没有错误。
这是在尝试解决最近的 MSVC 中的(可能有问题的)非常数
NAN
时出现的,请参阅最近的 MSVC 版本不将 NAN 视为常量,解决方法?我想看看 0.0 / 0.0
是否是在某些情况下是有效的替代品。
- / 运算符的结果是第一个操作数除以第二个操作数所得的商; % 运算符的结果是余数。在这两个操作中,如果第二个操作数的值为零,则行为未定义。