<分区>
我正在查看一些代码,发现了一些奇怪的条件,即:
if (NULL != buf) {...}
我想知道是否有特殊的原因要写这样的条件,而不是
if(buf != NULL){...}
我一开始想不出有什么理由这样做,但我不认为这是一个错误。在我看来,他们似乎完成了同样的事情,但第二种方式更直观。使用第一个条件是否有某些特定原因?
标签 c conditional
<分区>
我正在查看一些代码,发现了一些奇怪的条件,即:
if (NULL != buf) {...}
我想知道是否有特殊的原因要写这样的条件,而不是
if(buf != NULL){...}
我一开始想不出有什么理由这样做,但我不认为这是一个错误。在我看来,他们似乎完成了同样的事情,但第二种方式更直观。使用第一个条件是否有某些特定原因?
最佳答案
是的,它叫做“Yoda conditions”。这个想法是在您打算进行检查时不要意外地分配一个值。大多数现代编译器都应该捕获它。
关于c - "Backwards"C 中的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31143693/