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

时间:2016-11-07 21:51:55

标签: c if-statement

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

if (0 == Indx)
{ 
    //do something
}

上述代码的作用是什么,与下面的代码有何不同。

if (Indx == 0)
{
    // do something
}

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

1 个答案:

答案 0 :(得分:8)

有些程序员喜欢使用它:

<textarea id="theText"></textarea>
<br><button onclick="pasteText()">Click</button>

因为这行

if (0 == Indx) 

可以“轻易”被错误地编码,如赋值语句(而不是比较)

if (Indx == 0)

它在C中完全有效。

if (Indx = 0) //assignment, not comparison. 是一个返回0的表达式(也将0赋给Indx)。

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

您可以阅读有关优势与劣势的更多信息here