Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在 Linux 内核源代码中,我找到以下代码:
h++; pending >>= 1;
它是__do_softirq(void). 但是“>>=”是什么意思?为什么不是我记得的“>>”?谢谢!
__do_softirq(void)
它只是做
pending = pending >>1;
简而言之,它将无符号整数除以 2。
这与 , 等具有相同的+=构造/=。
+=
/=
这不仅仅是pending >>1你记得的那样,因为它不会将移位操作的结果存储在变量中。
pending >>1
相当于
pending = pending >> 1;
哪个位移正确的位在pending. 这将产生将无符号整数除以 2 的效果。>> 和 << 是位移运算符,与 = 的组合的行为方式与 += 和 /= 的方式相同。
pending