我正在使用C++中的庞大代码库.作者使用0==i语法来检查相等性.我已经用C++编写了很多年了; 我一直使用i==0语法.
前者比后者有什么优势吗?或者只是个人偏好?
Lig*_*ica 11
0==i被称为"尤达条件".这当然是个人偏好,但确实有优势.
在黑暗时代,它被神秘的骑士使用,他们缺乏现代技术,在他们0=i错误地写作时告诉他们.
编译器将拒绝意外0=i,但它会接受意外i=0.
这个惯例在1672年战争结束后被逐步淘汰.当代巫师试图编写对其他巫师(也是精灵,精灵和人类)有意义的代码,而是使用在这个千年(也是他们的眼睛)中编写的编译器来避免这样的错误.
md5*_*d5i 10
前者的优点是它可以防止程序员意外地遗漏等号.
if (i = 0)
Run Code Online (Sandbox Code Playgroud)
以上是合法的,并设置i为零,并且为假(因为零被认为是假的).
if (0 = i)
Run Code Online (Sandbox Code Playgroud)
以上情况在所有情况下都是非法的.
今天,大多数编译器都会发出警告if (i = 0),但这不是必需的,并且他们并不总是如此.