C中的"倒退"条件

Jus*_*ang 4 c conditional

我正在查看一些代码,我发现了一些奇怪的条件,即:

if (NULL != buf) {...}
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一个特殊的原因写这样的条件,而不是

if(buf != NULL){...}
Run Code Online (Sandbox Code Playgroud)

我看不出有任何理由在头顶上做第一条道路,但我认为这不是一个错误.对我来说,似乎他们完成了同样的事情,但第二种方式更直观.是否有一些特定的理由使用第一个条件?

ros*_*031 7

是的,它被称为" Yoda条件 ".您的意思是在意图进行检查时不小心分配值.大多数现代编译器都应该抓住它.