第一个代码:
if(i==0) {// do instructions here}
Run Code Online (Sandbox Code Playgroud)
第二个代码:
if(0==i) { // do instructions here }
Run Code Online (Sandbox Code Playgroud)
块之间有什么区别?
Alo*_*ave 29
在功能上,没有区别.
一些开发人员更喜欢编写第二种格式以避免分配拼写错误(如果你错过了=),编译器会警告输入错误.
第二个是着名的尤达条件.

我说没有区别因为,你无法防范每一个微不足道的细节,依靠编译器为你大声喊叫.如果你打算写一个==你应该期待自己写一个==而不是一个=.
使用第二种格式只会导致一些模糊的不可读代码.
此外,大多数主流的编译器警告的分配,而不是平等的错字发射警告,一旦你让所有的警告(你应该反正).
在功能上,它们在C中是相同的; 我不确定运算符重载等丑陋的东西会发挥作用的其他语言.
在风格上,后者非常反直觉,我个人觉得它非常难看.问题的关键是让编译器抛出一个错误,当你不小心写=来代替==,但良好的编译器可以选择要提醒你这个反正所以它是没有必要的.