可能是一個愚蠢的問題,但它對我來說是一種閒置的好奇心。德爾福常數按位表達式
我有一些Delphi代碼,看起來像這樣;
const KeyRepeatBit = 30; ... // if bit 30 of lParam is set, mark this message as handled if (Msg.lParam and (1 shl KeyRepeatBit) > 0) then Handled:=true; ...
(代碼的目的並不重要)
該編譯器看到「(1個SHL KeyRepeatBit)」的東西,可以在編譯時計算的,因此它變成一個常數?如果不是,將數字作爲數字並用數字替換表達式會有什麼好處?
謝謝,這就是我所需要的。 :-) – robsoft 2009-07-22 10:42:59
您忘記了可寫常量;)在這種情況下,表達式會在運行時被評估爲 – 2009-07-22 12:41:13