假设我们有一个并且想要以布尔方式在和int
之间切换。我想到了以下几种可能:0
1
int value = 0; // May as well be 1
value = value == 0 ? 1 : 0;
value = (value + 1) % 2;
value = !value; // I was curious if that would do...
- 第三个似乎有效。为什么?是谁决定
!0
的1
? - 这些有什么问题吗?
- 还有其他可能性吗?例如按位运算符?
- 哪个提供最佳性能?
- 所有这些都与
_Bool
(或bool
来自stdbool.h)相同吗?如果不是,有什么区别?
编辑:很多很好的答案,有很多有价值的信息,谢谢!不幸的是,我只能接受一个。