可能是一个愚蠢的问题,但对我来说只是一种好奇。
我有一些Delphi代码看起来像这样;
const KeyRepeatBit = 30;
... // 如果lParam的第30位被设置,将此消息标记为已处理 if (Msg.lParam and (1 shl KeyRepeatBit) > 0) then Handled:=true; ...
(代码的目的并不重要)
编译器是否将"(1 shl KeyRepeatBit)"视为可以在编译时计算的内容,因此它变成了一个常量?如果不是,通过计算出一个数字并替换表达式中的数字,能获得任何收益吗?