Linuxカーネルソースコードでは、以下のコードを見つけました:
h++;
pending >>= 1;
の一部です__do_softirq(void)
。しかし、">>=" とはどういう意味ですか? 私が覚えているように、なぜ「>>」ではないのですか? ありがとう!
それは単に
pending = pending >>1;
つまり、unsigned int を 2 で割ります。
+=
これは、/=
、 などと同じ構造です。
pending >>1
シフト操作の結果を変数に格納しないため、覚えているだけではありません。
と同等です
pending = pending >> 1;
のビットを右にビットシフトしpending
ます。これは unsigned int を 2 で除算する効果があります。 >> と << はビットシフト演算子であり、= との組み合わせは += と /= と同じように動作します。