2

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

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

myInt = (!myInt) ? MACRO1 : MACRO2;

这是否完成与此完全相同的事情:

myInt = myInt ? MACRO2 : MACRO1;

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

4

3 回答 3

6

是的,这段代码完成了完全相同的事情。它仅取决于编写条件时使用的逻辑 - 因此可以将其归结为样式(即您更容易想到的那个)。

于 2012-08-10T20:11:02.937 回答
2

是的,你是对的。似乎该代码的创建者想让表达式比它需要的更混乱。

于 2012-08-10T20:11:12.497 回答
2

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

myInt = myInt ? MACRO2 : MACRO1;
于 2012-08-10T20:19:07.477 回答