3

WM_KEYDOWN メッセージで渡された lParam パラメータの 30 番目のビットを取得する必要があります。ここに書かれているこのビットにより、キーが以前に押されたかどうかを知ることができます。このコードはそれを取得するのに適していますか?

(lParam >> 30) & 1
4

1 に答える 1

9

私はただ使用しますlParam & 0x40000000。それがゼロでない場合は、b30設定されました(ちなみに、32 の 31 ビット目だと思います)。{logical-and, compare}そして、よりもむしろ操作である可能性が高くなり{shift, logical-and, compare}ます。

念のために言っておきますが、適切なコンパイラが使用したとしても、とにかくより効率的なコードを生成する可能性は十分にあります(lParam >> 30) & 1が、なぜリスクを冒すのでしょうか?

于 2011-05-30T12:59:26.290 に答える