为什么使用if条件(0 == Indx)而不是(Indx == 0) - 是否存在差异?

Jes*_*dem 5 c if-statement

我有一个基本的问题,这让我很烦恼,我无法弄清楚程序员为什么会使用它.

if (0 == Indx)
{ 
    //do something
}
Run Code Online (Sandbox Code Playgroud)

上面的代码做了什么以及它与下面的代码有什么不同.

if (Indx == 0)
{
    // do something
}
Run Code Online (Sandbox Code Playgroud)

我试图了解为嵌入式系统编写的一些源代码.

Cac*_*nta 8

一些程序员喜欢使用它:

if (0 == Indx) 
Run Code Online (Sandbox Code Playgroud)

因为这条线

if (Indx == 0)
Run Code Online (Sandbox Code Playgroud)

可以"轻松"编码错误,如赋值语句(而不是比较)

if (Indx = 0) //assignment, not comparison.
Run Code Online (Sandbox Code Playgroud)

它在C中完全有效.

Indx = 0 是一个返回0的表达式(也将0指定给Indx).

就像在这个答案的评论中提到的那样,如果你在if中有类似的任务,大多数现代编译器都会向你显示警告.

你可以阅读更多关于优点缺点VS 这里.

  • 这是那些不会死的东西之一.现代编译器会对此发出警告.利用它. (2认同)