我是C的新手,我理解为什么三元运算符有用,代码少于if / else块。
我已经获得了一些C代码来维护,我注意到的一件事就是以前的程序员使用过这样的三元运算符
myInt = (!myInt) ? MACRO1 : MACRO2;
这是否与此完全相同:
myInt = myInt ? MACRO2 : MACRO1;
这只是一种风格吗?也许考虑“如果不是”myInt而不是“if”是否有意义?
答案 0 :(得分:6)
是的,这段代码完成了同样的事情。它只取决于编写条件时使用的逻辑 - 所以它可以归结为样式(即,你想的更容易)。
答案 1 :(得分:2)
是的,你是对的。似乎该代码的发起者想要使表达式比它需要的更加混乱。
答案 2 :(得分:2)
我更喜欢第二个例子,因为它没有使用反向逻辑,因此更容易理解,也不那么混乱。
myInt = myInt ? MACRO2 : MACRO1;