为什么C语言中if(x=1)比if((x=1)==1)运行速度更快

 

前者只做了一个赋值运算。后者做了两次运算,一次赋值,一次比较。

直接赋值,赋值加判断

 

if的判断条件是布朗型吧,也就是说if(x=1)应该是由编译器自主返回一个真值,那为什么我自己动手,帮他直接返回一个布朗数据反而慢了呢?(C语言新人,理解不到位的话请见谅)

不要这么写代码,分开写清楚。