3

在 Linux 内核源代码中,我找到以下代码:

    h++;
    pending >>= 1;

它是__do_softirq(void). 但是“>>=”是什么意思?为什么不是我记得的“>>”?谢谢!

4

2 回答 2

16

它只是做

pending = pending >>1;

简而言之,它将无符号整数除以 2。

这与 , 等具有相同的+=构造/=

这不仅仅是pending >>1你记得的那样,因为它不会将移位操作的结果存储在变量中。

于 2012-06-28T14:09:23.533 回答
2

相当于

pending = pending >> 1;

哪个位移正确的位在pending. 这将产生将无符号整数除以 2 的效果。>> 和 << 是位移运算符,与 = 的组合的行为方式与 += 和 /= 的方式相同。

于 2012-06-28T14:17:17.823 回答