高手给指点一下,下面两种写法的区别再哪里
差不多的两句话,顺序不同,结果就是一行可以通过编译,一行报错,高手给指点一下,具体如下:
_iout = (xf+_l)->topflags & XF_IOPEN || ((bs+_bs)->iisland != pwrglobal->island);
上面这句报错为:
fd_fmjjyu.cpp(558) : error C2143: syntax error : missing ';' before '||'
跟上面差不多意思的一句话:
_dead = ((bs+_bs)->iisland != pwrglobal->island) || (bs+_bs)->q & BS_OPEN;
这句编译就可以通过。
这两句话的含义都是一样的,只是第一局把 位与& 运算放在前面,不等于放后面,然后进行 或|| 运算,结果报错。
下面把 不等于!= 运算 放前面, 位与& 放后面 ,就可以安全通过。
请高手指点下这是什么原因。谢谢了!