请问语句的操作顺序是什么呢?

来源:百度知道 编辑:UC知道 时间:2024/06/15 19:46:13
flags |= EXTERNAL | STATIC;

flags &= ~(EXTERNAL | STATIC);

flags |= EXTERNAL | STATIC;
这句就是给flags加上,后面那两种属性

flags &= ~(EXTERNAL | STATIC);
这个事上面的逆操作,就是去掉那些属性

顺序就是EXTERNAL | STATIC,先做这个,就是相当于加法
再将这个算好的值加到flags上面

同理下面那个就是EXTERNAL | STATIC,先做,然后取反,将取反的结果加到flags上去

LZ只要搞清楚运算符的优先级就知道了:
在两条式子中|=、&=两个的优先级最低,最后执行;
(第一条式子只有两个运算符,就不解释了)
然后()比~有较高优先级,所以先执行()中的运算
至于两条式子的作用,就如一楼所说的。