我有一个基本的问题,这让我很烦恼,我无法弄清楚程序员为什么会使用它.
if (0 == Indx)
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
上面的代码做了什么以及它与下面的代码有什么不同.
if (Indx == 0)
{
// do something
}
Run Code Online (Sandbox Code Playgroud)
我试图了解为嵌入式系统编写的一些源代码.
一些程序员喜欢使用它:
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 这里.