这些语句是否相同 if (x - y) {} vs. if (x !=y) {}
Are these statements the same if (x - y) {} vs. if (x !=y) {}
我已经编程了一段时间,在我看来,以下两个如果语句会产生相同的结果,但我总是质疑它,有人可以帮我解决这个问题吗?
int x, y;
if (x - y) {
//some code
}
与
int x, y;
if (x != y) (
// some code
}
谢谢。。。
这取决于x
和y
的类型。
假设x
和y
都是int
,这两个语句不等价,因为如果结果不能在int
中表示,x - y
会调用未定义的行为。
假设x
和y
都是unsigned int
的,这两个语句是等价的(unsigned int
不溢出)。
如果(x-y)
会导致溢出,则不会。在溢出的情况下,行为是未定义的。在某些系统上,它可能会换行,在其他系统上,它可能会将结果设置为 0(这将为您提供误报)。
相关文章:
- C++20. is_constant_evaluated() vs if constexpr
- if else VS映射查找
- 性能:否则如果 vs if 在已经返回的函数中
- 如果 constexpr vs if 与常量
- if constexpr vs sfinae
- Visual Studio C++ 完全忽略 if 语句或 if 语句中的行.VS 2015
- "constexpr if" vs "if" 与优化 - 为什么需要"constexpr"?
- 条件运算符vs if then else
- 条件检查:if(x==0) vs. if(!x)
- #if vs #ifndef vs #ifdef
- static const std::map<string, int> vs if-elseif
- 事件是 SFML.切换语句 VS if 语句
- VS C++:树状 if/else 结构的代码生成需要很长时间
- 这些语句是否相同 if (x - y) {} vs. if (x !=y) {}
- if/else vs虚拟功能:设计性能
- VS2010上不区分大小写的字符串比较-为每个版本的VS播放#if定义的语句
- 我不能在VS 2013中使用if(ifs == NULL)命令
- 嵌套IF语句vs IF- else
- 2个while循环vs if else语句在1个while循环中
- 嵌套if VS . 2独立if——性能方面