不寻常地使用三元运算符

时间:2012-08-10 20:08:52

标签: c ternary

我是C的新手,我理解为什么三元运算符有用,代码少于if / else块。

我已经获得了一些C代码来维护,我注意到的一件事就是以前的程序员使用过这样的三元运算符

myInt = (!myInt) ? MACRO1 : MACRO2;

这是否与此完全相同:

myInt = myInt ? MACRO2 : MACRO1;

这只是一种风格吗?也许考虑“如果不是”myInt而不是“if”是否有意义?

3 个答案:

答案 0 :(得分:6)

是的,这段代码完成了同样的事情。它只取决于编写条件时使用的逻辑 - 所以它可以归结为样式(即,你想的更容易)。

答案 1 :(得分:2)

是的,你是对的。似乎该代码的发起者想要使表达式比它需要的更加混乱。

答案 2 :(得分:2)

我更喜欢第二个例子,因为它没有使用反向逻辑,因此更容易理解,也不那么混乱。

myInt = myInt ? MACRO2 : MACRO1;