【发布时间】:2009-07-22 10:28:07
【问题描述】:
可能是一个愚蠢的问题,但对我来说这是一个无聊的好奇心。
我有一些看起来像这样的 Delphi 代码;
常量 KeyRepeatBit = 30; ... // 如果设置了 lParam 的第 30 位,则将此消息标记为已处理 如果 (Msg.lParam 和 (1 shl KeyRepeatBit) > 0) 那么 处理:=真; ...(代码的目的并不重要)
编译器是否将“(1 shl KeyRepeatBit)”视为可以在编译时计算的东西,因此它成为一个常量?如果没有,将其计算为数字并将表达式替换为数字会有什么好处吗?
【问题讨论】:
标签: delphi optimization compiler-construction