可能是一个愚蠢的问题,但它对我来说是一种闲置的好奇心。德尔福常数按位表达式
我有一些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